Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json HttpMediaTypeNotAcceptableException与Spring 3.1.2和Jackson 1.9.11_Json_Spring_Rest_Spring Mvc_Jackson - Fatal编程技术网

Json HttpMediaTypeNotAcceptableException与Spring 3.1.2和Jackson 1.9.11

Json HttpMediaTypeNotAcceptableException与Spring 3.1.2和Jackson 1.9.11,json,spring,rest,spring-mvc,jackson,Json,Spring,Rest,Spring Mvc,Jackson,~R 我正在尝试使用Jackson实现springmvcrestjson通道与JSON的自动转换。尽管我按照其他StackOverflow问题中的建议做了所有事情,但我得到了HttpMediaTypeNotAcceptableException,并且我的bean/列表没有转换为JSON。我正在Jetty上运行代码 我已经按照和的指示进行了操作,但它们都不能使我发送bean或列表。两者都返回HTTP状态406。只有返回字符串的方法在HTTP 200中成功 我的方法是: @RequestMappin

~R

我正在尝试使用Jackson实现springmvcrestjson通道与JSON的自动转换。尽管我按照其他StackOverflow问题中的建议做了所有事情,但我得到了
HttpMediaTypeNotAcceptableException
,并且我的bean/列表没有转换为JSON。我正在Jetty上运行代码

我已经按照和的指示进行了操作,但它们都不能使我发送bean或
列表。两者都返回HTTP状态406。只有返回字符串的方法在HTTP 200中成功

我的方法是:

@RequestMapping(value = "/list", produces = "text/plain; charset=utf-8")
public @ResponseBody List<String> getList() {
    return createList();
}
@RequestMapping(value=“/list”,products=“text/plain;charset=utf-8”)
public@ResponseBody List getList(){
返回createList();
}
Spring文件:

<context:component-scan base-package="de.myapp.rest" />
<context:annotation-config />
<mvc:annotation-driven />

<bean id="jacksonMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="jacksonMessageConverter" />
        </list>
    </property>
</bean> 

添加此部分也无济于事:

<bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver" p:order="1">
  <property name="mediaTypes">
    <map>
      <entry key="json" value="application/json"/>
    </map>
   </property>
  <property name="defaultViews">
    <list>
      <bean class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"/>
    </list>
  </property>
</bean> 

请求HTTP头由jQuery生成,如下所示:

接受application/json、text/javascript、/;q=0.01 接受编码gzip,放气 接受语言德德,德;q=0.8,在美国;q=0.5,en;q=0.3 用户代理Mozilla/5.0(Windows NT 6.1;WOW64;rv:18.0)Gecko/20100101 Firefox/18.0

但是,我得到了带有HTML错误消息的HTTP 406以及日志文件中的以下行:

正在解析处理程序[public de.myapp.rest.TestBean]中的异常 de.myapp.rest.Test.getList()]: org.springframework.web.HttpMediaTypeNotAcceptableException:无法 找到可接受的代表


所以问题是,我缺少什么?为什么jackson转换器未注册/如何调试它?我正在通过
jetty:run
运行代码。但是它不应该重要,因为Spring是独立于应用服务器的。

在您的
@RequestMapping
中,您有
products=“text/plain”
,但您的请求头说
接受应用程序/json,text/javascript
。没有对手


使用
products=“application/json”
或根本不使用
products
。它的主要用例是为同一个URL提供多个方法,每个方法都以不同的格式(JSP、JSON、XML…)生成输出。

是的,昨天我制作了应用程序/JSON,但后来我为了测试而更改了它。今天我应用了stackoverflow的解决方案,但我忘记了更改产品。