Проблема с преобразованием POJOs в JSON

#java #spring #spring-mvc

#java #весна #spring-mvc

Вопрос:

Я разрабатываю REST API и использую Spring-mvc (нет spring-boot )

 @RestController
@RequestMapping(value = "/api")
public class restController {

    ...

    @GetMapping(value = "/sectors")
    public List<SimpleDto> getSectors() {
        return dao.getSectors();
    }
  

Мой dto :

 public class SimpleDto {

    public Integer value;
    public String label;

    // with getter and setter and defalut and custom constructors
  

WebConfig.java

 @Configuration
@EnableWebMvc
@ComponentScan({"controllers"})
public class WebConfig {}
  

и для преобразования json я добавил в свой pom.xml :

 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
  

Все работает хорошо, но когда я клонировал этот проект с Git помощью to wok на нем из дома, я получил эту ошибку при выполнении запроса ajax :

 Resolved [org.springframework.http.converter.HttpMessageNotWritableException: 
No converter found for return value of type: class java.util.ArrayList]
  

Я исправил это, добавив это

pom.xml

 <dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.9.8</version>
</dependency>

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>2.9.8</version>
</dependency>
  

WebConfig.java

 @Configuration
@EnableWebMvc
@ComponentScan({"controllers"})
public class WebConfig extends WebMvcConfigurationSupport {

      @Bean
      public ObjectMapper getObjectMapper()  {
        return new ObjectMapper();
      }

      @Bean
      public MappingJackson2HttpMessageConverter messageConverter() {
        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
        converter.setObjectMapper(getObjectMapper());
        return converter;
      }

      @Override
      public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(messageConverter());
        addDefaultHttpMessageConverters(converters);
      }
}
  

почему эта ошибка возникает только на одной машине?

Комментарии:

1. Приведенной выше информации недостаточно

2. Вы пропустили создание getter setter вашего POJO?

3. @Deadpool я добавил некоторые детали

4. @AnantGoswami я добавил их, даже если мои поля public

5. Вероятно, это связано с maven на вашем домашнем компьютере. Попробуйте очистить с помощью: mvn clean install Или даже подумайте об удалении c:Users <имя пользователя>.m2репозиторий и перестройка