关于springmvc的jackson.jar问题(jar包已引用)

夙魔天 2017-06-07 05:51:52
我用的是springmvc4.3.6 换了很多版本的jackson.jar
jar包已经添加进web-inf下的lib中了,
springmvc-server.xml中也配置了
<mvc:annotation-driven />

controller中使用的是ResponseBody注解的模式

希望高手能够指点一二!万分感谢!

@RequestMapping("user/douseradd.html")
@ResponseBody
public Map<String,Object> doUserAdd(HttpSession session,@ModelAttribute("form") User user){
System.out.println("uname---->"+user.getUname()+"upassword-->"+user.getUpassword());
//声明一个标记
int status=0;
System.out.println("初始化新增返回值-------------------->status---->"+status);
try {
status=userService.addUser(user);
//System.out.println("新增用户返回值-------------------->status---->"+status);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Map<String,Object> resultMap=new HashMap<String,Object>();
if(status==1){
System.out.println("------------------------>插入成功");
resultMap.put("statusCode","200");
resultMap.put("message","操作成功");
resultMap.put("rel","");
resultMap.put("callbackType","closeCurrent");
resultMap.put("forwardUrl","");
return resultMap;
}else{
System.out.println("------------------------>插入失败");
resultMap.put("statusCode","300");
resultMap.put("message","操作失败");
resultMap.put("rel","");
resultMap.put("callbackType","closeCurrent");
resultMap.put("forwardUrl","");
return resultMap;
}
}


依然出现下面在错误
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:200)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:174)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:81)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:132)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
...全文
406 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
JessyJ_C 2017-06-16
  • 打赏
  • 举报
回复
@RequestBody删了就好了,习惯把@Responsebody写requestmapping下面
xiaoruiqing328 2017-06-09
  • 打赏
  • 举报
回复
只要配置了注解驱动 并且有加入json的jar包 当然json的jar包版本要对 会将对象自动转换成json格式的 我用的不需要什么json转换的jar包
xiaoruiqing328 2017-06-09
  • 打赏
  • 举报
回复
@RequestMapping("user/douseradd.html") dispatcherservlet 不要以 html.、或者htm结尾 换个类似与.do .aaaa什么的
宝贝一路向前 2017-06-09
  • 打赏
  • 举报
回复
我的也是出现 @RequestBody 请求 JSON 异常。 springmvc4.3.8 项目中引用了 jackson-all-2.8.0 jar 包。 在 springmvc.xml 配置 <mvc:default-servlet-handler /> <bean class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean" id="contentNegotiationManagerFactoryBean"> <property name="favorPathExtension" value="false" /> <property name="favorParameter" value="false" /> <property name="ignoreAcceptHeader" value="false" /> <property name="mediaTypes"> <map> <entry key="xml" value="application/xml" /> <entry key="json" value="application/json" /> <entry key="xls" value="application/vnd.ms-excel" /> </map> </property> </bean> <bean id="stringConverter" class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/plain;charset=UTF-8</value> <value>application/json</value> </list> </property> </bean> <bean id="jsonConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> </bean> <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="stringConverter" /> <ref bean="jsonConverter" /> </list> </property> </bean> public class BaseRequest { public String Code; public int PageIndex; public int PageSize; } @ResponseBody @RequestMapping(value = "/MyData",method={RequestMethod.POST}) public BaseResult MyData(@RequestBody BaseRequest req) { BaseResult retObj = new BaseResult(); retObj.RetCode = "00000"; retObj.RetMsg = "test"; return retObj; } jsp $.ajax({ url:'/MyTest/Test/MyData', data:{"Code":"test","PageIndex":1,"PageSize":1}, type:"POST", dataType:"json", contentType:"application/json;charset=utf-8", success:function(data) { alert(data.RetMsg); }, error:function(XMLHttpRequest, textStatus, errorThrown) { alert(XMLHttpRequest.status); } }) 却报 400 错误, WARNING: Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON document: Unrecognized token 'Code': was expecting ('true', 'false' or 'null') at [Source: java.io.PushbackInputStream@16c4641a; line: 1, column: 6]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'Code': was expecting ('true', 'false' or 'null') at [Source: java.io.PushbackInputStream@16c4641a; line: 1, column: 6] 也试过 ajax 中的数据 key 不带双引号。 如果 去掉 @RequestBody 则正常,只是接收不到ajax的数据。
NANU-NANA 2017-06-07
  • 打赏
  • 举报
回复
<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-core-lgpl</artifactId>
    <version>1.8.1</version>
</dependency>

<dependency>
    <groupId>org.codehaus.jackson</groupId>
    <artifactId>jackson-mapper-lgpl</artifactId>
    <version>1.8.1</version>
</dependency>

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧