春JSON和406 HTTP错误
我找了很多关于这个问题的问题,但我并没有解决...... 我有这样的方法:春JSON和406 HTTP错误
@RequestMapping(value="/testInit")
public @ResponseBody Output test() throws Exception {
return new Output(true);
}
,我不得不杰克逊libreary到类路径,进入的applicationContext但我仍然得到406错误与这个jQuery调用:当客户端请求,服务器不能返回的内容类型
$.ajax({
url: "/testInit",
type: "get",
dataType: "json"
});
我解决了使用jackson-all.1.9.0.jar而不是jackson 2库。
的406 Not Acceptable
响应时使用。换句话说,您的客户端(例如Web浏览器)正在发送与服务器功能不匹配的Accept
标头。
我猜jQuery Ajax方法在设置Accept
标头时使用dataType
字段。 json
不是一个知名的内容类型 - 但是application/json
是。
尝试用dataType: "application/json"
替换dataType: "json"
。
我可以让我的工作的唯一方法是升级到3.1,并添加一个产品到请求映射。
@RequestMapping(value = "/rest/{myVar}", method = RequestMethod.GET, produces = "application/json")
@ResponseBody
public MyObject get(
@PathVariable String myVar) {
无其他解决方案的工作对我来说
您必须添加的罐子,并添加org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
和org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
到DispatcherServlet的-servlet.xml中
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter"/>
</list>
</property>
</bean>
<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
如上所示。
我有这个问题,最终追查到没有任何getters在我正在使用的类。
即这造成了406
public static class Pojo {
private int x;
public Pojo(int x) {
this.x = x;
}
}
但这并没有
public static class Pojo {
private int x;
public Pojo(int x) {
this.x = x;
}
public int getX() {
return x;
}
}
是的,我是用一种称为POJO的:)类 - 我只是做一个虚拟的例子来检查杰克逊在我的新设置中工作
这是与萤火虫的标题捕获:接受应用程序/ json,文本/ JavaScript,*/*; Q = 0.01 – Tobia