我使用IDEA构建基于SpringMVC的简单RESTful服务器。但是@RestController和@ResponseBody无法通过jackson JSON将POJO转换为JSON。
在 dispatcher-servlet.xml 中:
<mvc:annotation-driven/>
在 pom.xml 中:
<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>
我的控制器:
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/one")
public One getOne() {
return new One(1);
}
}
我的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;
}
但是我仍然得到找不到类型返回值的转换器错误。 我不知道为什么我遇到了一些配置或其他东西吗?
答案 0 :(得分:0)
尝试将其放入您的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>
答案 1 :(得分:0)
您需要指定产生/消费以定义所需的数据类型,例如:
@RestController
@RequestMapping("/test", produces = {MediaType.APPLICATION_JSON_VALUE})
public class TestController {
@GetMapping("/one")
public One getOne() {
return new One(1);
}
}