我升级我的弹簧框架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>
我收到了像
这样的错误
我尝试了很多解决方案,但那些不适合我,请帮我解决这个问题。
答案 0 :(得分:0)
一些事情......日志中有什么?什么是http请求?您还有一些关于Accept标头的提示。我肯定会寻找一个特定的例外。我很确定你会找到一个。
使用类似firebug的东西来检查Accept标头。如果我可以提出建议,springmvc-test-framework也可以在这里提供帮助。可能需要一段时间才能正确设置,但从长远来看是非常宝贵的。
所以这些是解决问题的一般建议。
答案 1 :(得分:0)
将produces = MediaType.APPLICATION_JSON_VALUE
添加到您的@RequestMapping
。
在您的ajax通话中将datatype
更改为dataType
。如果它仍然无法添加
accepts: { json: 'application/json' }
如果一切设置正确,那么任何事都不应该。所以可能存在一些配置错误。