Java IDEA构建的SpringMVC:未找到类型为的返回值的转换器
我使用IDEA基于SpringMVC构建了一个简单的RESTful服务器。但是@RestController和@ResponseBody无法通过jackson JSON将POJO转换为JSON 在调度程序servlet.xml中:Java IDEA构建的SpringMVC:未找到类型为的返回值的转换器,java,spring,Java,Spring,我使用IDEA基于SpringMVC构建了一个简单的RESTful服务器。但是@RestController和@ResponseBody无法通过jackson JSON将POJO转换为JSON 在调度程序servlet.xml中: <mvc:annotation-driven/> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <a
<mvc:annotation-driven/>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
我的POJO:
public class One {
public One(int number) {
this.number = number;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
private int number;
}
但是我仍然没有找到类型为error的返回值的转换器。
我不知道为什么。我是否遇到了一些配置或其他内容?尝试将其放入dispatcher-servlet.xml中:
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.StringHttpMessageConverter"/>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
您需要指定products/consumes来定义所需的数据类型,例如:
@RestController
@RequestMapping("/test", produces = {MediaType.APPLICATION_JSON_VALUE})
public class TestController {
@GetMapping("/one")
public One getOne() {
return new One(1);
}
}
我尝试了此操作,但出现了新错误:嵌套异常为java.lang.NoClassDefFoundError:com/fasterxml/jackson/core/util/DefaultPrettyPrinter$Indenter org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:313)我已经解决了这个问题。我忘了将罐子添加到工件。。。。非常感谢。我通过以下方式解决了这个问题:项目结构->工件->将jacksonXXX.jar添加到输出根。。。。。
@RestController
@RequestMapping("/test", produces = {MediaType.APPLICATION_JSON_VALUE})
public class TestController {
@GetMapping("/one")
public One getOne() {
return new One(1);
}
}