#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репозиторий и перестройка