"Could not find acceptable representation"使用spring-boot-starter-web。
"Could not find acceptable representation"使用spring-boot-starter-web。
我正在尝试使用spring-boot-starter-web
创建一个REST服务,用于提供Java对象的JSON表示。据我所了解,这个boot-starter-web jar应该通过Jackson自动处理JSON转换,但我却得到了这个错误。
{
"timestamp": 1423693929568,
"status": 406,
"error": "Not Acceptable",
"exception": "org.springframework.web.HttpMediaTypeNotAcceptableException",
"message": "Could not find acceptable representation"
}
我的Controller如下...
@RestController @RequestMapping(value = "/media") public class MediaController { @RequestMapping(value = "/test", method = RequestMethod.POST) public @ResponseBody UploadResult test(@RequestParam(value="data") final String data) { String value = "hello, test with data [" + data + "]"; return new UploadResult(value); } @RequestMapping(value = "/test2", method = RequestMethod.POST) public int test2() { return 42; } @RequestMapping(value = "/test3", method = RequestMethod.POST) public String test3(@RequestParam(value="data") final String data) { String value = "hello, test with data [" + data + "]"; UploadResult upload = new UploadResult(value); return upload.value; } public static class UploadResult { private String value; public UploadResult(final String value) { this.value = value; } } }
我的pom.xml
如下...
org.springframework.boot spring-boot-starter-web 1.2.1.RELEASE org.springframework.boot spring-boot-starter-tomcat 1.2.1.RELEASE provided
mvn dependency:tree
显示spring-boot-starter-web确实依赖于jackson2.4 databind,因此应该在类路径上...
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.2.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:1.2.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot:jar:1.2.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-autoconfigure:jar:1.2.1.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:1.2.1.RELEASE:compile
[INFO] | | | +- org.slf4j:jul-to-slf4j:jar:1.7.8:compile
[INFO] | | | \- org.slf4j:log4j-over-slf4j:jar:1.7.8:compile
[INFO] | | \- org.yaml:snakeyaml:jar:1.14:runtime
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.4.4:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.4.0:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.4.4:compile
[INFO] | +- org.hibernate:hibernate-validator:jar:5.1.3.Final:compile
[INFO] | | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | | +- org.jboss.logging:jboss-logging:jar:3.1.3.GA:compile
[INFO] | | \- com.fasterxml:classmate:jar:1.0.0:compile
[INFO] | +- org.springframework:spring-web:jar:4.1.4.RELEASE:compile
[INFO] | | +- org.springframework:spring-aop:jar:4.1.4.RELEASE:compile
[INFO] | | | \- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | +- org.springframework:spring-beans:jar:4.1.4.RELEASE:compile
[INFO] | | \- org.springframework:spring-context:jar:4.1.4.RELEASE:compile
[INFO] | \- org.springframework:spring-webmvc:jar:4.1.4.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.1.4.RELEASE:compile
...但调用test
服务会出现上述错误。 test2
和test3
正常工作,证明可能只是尝试转换为JSON失败了?我是否遗漏了某些配置问题或注释?根据我找到的所有示例,注释类以进行基本的Jackson JSON转换不再是必需的。
非常感谢您的帮助。