@ResponseBody在春季3.2.5不工作得到406错误

时间:2013-12-31 04:37:16

标签: json spring hibernate spring-mvc jackson

我升级我的弹簧框架2到3.2.5 @ResponseBody无法正常工作。 在lib文件夹中有

  

jackson-core-asl-1.9.9 jackson-mapper-asl-1.9.9 也可以。

Controller.java

    @RequestMapping(value="/addCompany",method=RequestMethod.GET)
@ResponseBody
public Company addCompany(HttpServletResponse response)
{

    LOG.info("ADD COMPPUNY SUCCESS");
    Company company=new Company();
    company.setCompanyEmail("subhash lamba");
    return company;
    //return new JSONObject(company).toString();

}

弹簧servlet.xml中

                                                                                                     

        <property name="defaultViews">
            <list>
                <bean
                    class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
                    <property name="prefixJson" value="true" />
                </bean>
            </list>
        </property> 

    </bean>

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


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

我收到了像

这样的错误

enter image description here

我尝试了很多解决方案,但那些不适合我,请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

一些事情......日志中有什么?什么是http请求?您还有一些关于Accept标头的提示。我肯定会寻找一个特定的例外。我很确定你会找到一个。

使用类似firebug的东西来检查Accept标头。如果我可以提出建议,springmvc-test-framework也可以在这里提供帮助。可能需要一段时间才能正确设置,但从长远来看是非常宝贵的。

所以这些是解决问题的一般建议。

答案 1 :(得分:0)

produces = MediaType.APPLICATION_JSON_VALUE添加到您的@RequestMapping

在您的ajax通话中将datatype更改为dataType。如果它仍然无法添加

accepts: { json: 'application/json' }

如果一切设置正确,那么任何事都不应该。所以可能存在一些配置错误。