Java 弹簧&x27;未使用适当的响应解析s Json
我曾尝试让一个控制器在Spring中返回一个JSON响应,但使用Jackson类作为响应,却毫无用处。当然,我的类路径中有jackson-core-asl-1.5.5.jar和jackson-mapper-asl-1.5.5.jar文件 至于appconfig.xml条目,我不确定是否需要这些。我把它们放在那里,作为回到ol'fashion非json ajax之前的最后一次绝望行为 在debug中,我看到控制器得到请求,返回foo,然后在firebug中得到406 错误消息如下所示: 设置为调试时,从记录器: org.springframework.web.HttpMediaTypeNotAcceptableException:找不到可接受的表示形式 从答复中可以看出: (406)该请求标识的资源仅能够根据请求“接受”头()生成具有不可接受特征的响应 我的appconfig.xml在这里:Java 弹簧&x27;未使用适当的响应解析s Json,java,json,spring,spring-mvc,jackson,Java,Json,Spring,Spring Mvc,Jackson,我曾尝试让一个控制器在Spring中返回一个JSON响应,但使用Jackson类作为响应,却毫无用处。当然,我的类路径中有jackson-core-asl-1.5.5.jar和jackson-mapper-asl-1.5.5.jar文件 至于appconfig.xml条目,我不确定是否需要这些。我把它们放在那里,作为回到ol'fashion非json ajax之前的最后一次绝望行为 在debug中,我看到控制器得到请求,返回foo,然后在firebug中得到406 错误消息如下所示: 设置为调试
我的控制器
@RequestMapping(value="foo/bar", method=RequestMethod.GET)
public @ResponseBody foo getFoo(@RequestParam String fooId) {
return new foo(fooId);
}
在jsp上进行ajax调用的地方:
function addRow() {
$.getJSON("foo/bar", {
fooId: 1
}, function(data) {
alert("it worked.");
});
}
如果需要更多信息,请告诉我 去掉所有jacksonbean和协商解析器中的json映射。
mvc:annotation-driven
应该配置Jackson序列化工作所需的一切。发送Accept:application/xml头不起作用。但是发送Accept:application/json实际上是可行的,jackson mapper也起了作用。我去掉了406,得到了json格式的序列化java对象,配置不超过@ResponseBody,返回新的MyObject()
:)
感谢skaffman提供的这些信息,感谢Bozho提供的工作标题值:D这个问题在网上随处可见,我被它咬了好几次。Spring3.0.6(可能还有5)在呈现json时存在一些问题。一旦我改为3.1.0.RELEASE版本,一切都按原样运行。没有任何配置更改。需要注意的是,返回方法必须有@ResponseBody(如前面的示例所示),并且必须位于servlet-context.xml或您的spring上下文配置文件中。可能是我的答案有点晚,但它可能会帮助其他人访问此问题 我通过添加
hibernate-validator-4.0.2
slf4j-api-1.5.6.jar
并给了我另一个异常(类NotFoundException:org.slf4j.LoggerFactory),我通过添加
hibernate-validator-4.0.2
slf4j-api-1.5.6.jar
我希望它能帮助别人。另外,请确保添加两个与jackson相关的jar文件
jackson-core-asl-1.9.8.jar
jackson-mapper-asl-1.9.8.jar
版本可能不同。我知道这是一个旧线程,但可能有人会遇到与我相同的问题。我在将应用程序从Spring4.0.3.RELEASE迁移到Spring4.1.0.RELEASE时遇到了这个异常。在我的例子中,将Jackson从1.9.x更新到2.4.x成功了
上次我清理/清除/刷新了我的Tomcat缓存,并做了其他任何事情来强制它重新加载。我相信当我添加Jackson依赖项时,它修复了我的编译时错误,但是由于tomcat没有发现它们,在运行时Spring MVC没有发现Jackson库,并产生了关于不可接受响应类型的406错误。从Spring 3.x迁移到Spring 4.x时,我也遇到了同样的异常 我通过更新来自的jackson依赖项解决了这个问题
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
org.codehaus.jackson
杰克逊地图绘制者
1.9.13
到
com.fasterxml.jackson.core
杰克逊核心
2.5.1
com.fasterxml.jackson.core
杰克逊数据绑定
2.5.1
com.fasterxml.jackson.core
杰克逊注释
2.5.1
我不需要其他任何东西。我也试过,但对我不起作用。有什么想法吗?我的类路径上有Jackson,我使用的是一个普通的旧对象,但它似乎仍然不能切割它。是的,这是我缺少的东西。对于使用
@RequestBody
和@ResponseBody
,默认的json格式和jackson JAR将被考虑用于pojo的转换。如何在@RequestBody注释上使用products=“application/json”
。