SSM,Conllroller接收json解析失败,报错StandardWrapperValve.invoke,解决方案

2 篇文章 0 订阅
  1. 报错
    1. 18-Apr-2021 09:51:33.606 严重 [http-nio-8080-exec-6] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为/Aplp_war的上下文中,Servlet[DispatcherServlet]的Servlet.service()引发了具有根本原因的异常Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: com/fasterxml/jackson/core/exc/InputCoercionException
      	java.lang.ClassNotFoundException: com.fasterxml.jackson.core.exc.InputCoercionException
      		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365)
      		at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188)
      		at com.fasterxml.jackson.databind.deser.std.JdkDeserializers.<clinit>(JdkDeserializers.java:26)
      		at com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findDefaultDeserializer(BasicDeserializerFactory.java:1852)
      		at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.findStdDeserializer(BeanDeserializerFactory.java:167)
      		at com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:131)
      		at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:411)
      		at com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349)
      		at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264)
      		at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)
      		at com.fasterxml.jackson.databind.deser.DeserializerCache.hasValueDeserializerFor(DeserializerCache.java:191)
      		at com.fasterxml.jackson.databind.DeserializationContext.hasValueDeserializerFor(DeserializationContext.java:421)
      		at com.fasterxml.jackson.databind.ObjectMapper.canDeserialize(ObjectMapper.java:3043)
      		at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.canRead(AbstractJackson2HttpMessageConverter.java:180)
      		at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:200)
      		at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:158)
      		at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:131)
      		at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
      		at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:167)
      		at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)
      		at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
      		at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
      		at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
      		at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
      		at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
      		at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
      		at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
      		at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
      		at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
      		at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
      		at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
      		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
      		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      		at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
      		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      		at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
      		at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
      		at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
      		at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
      		at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
      		at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
      		at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
      		at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
      		at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
      		at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
      		at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
      		at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
      		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
      		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
      		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
      		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
      		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
      		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
      		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
      		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
      		at java.base/java.lang.Thread.run(Thread.java:830)

  2. 我的代码
    1. Conllroller
      1. @RequestMapping(value="/Sign",method= RequestMethod.POST)
        public String Sign(@RequestBody Sign user){
            
            System.out.println(user.toString());
            
            return null;
        }

         

    2. ajax
      1. function loginPost() {
           $.ajax({
              url: "http://localhost:8080/Aplp_war/Login/sign.action",
              contentType: "application/json;charset=utf-8",
              data:getText(),
              dataType: "jsonp",
              type: "POST",
              xhrFields: {withCredentials: true},
              success:function(data) {
                 console.log(data);
                 alert(data);
              }, error:function(XMLResponse){
                 console.log(XMLResponse.responseText);
                 //alert(XMLResponse.responseText);
              }
           });
        }
        
        //获取文本信息并制作出Json
        function getText() {
           var idText = document.getElementById("id").value;
           var pwdText = document.getElementById("pwd").value;
           var idType = "id";
           if (checkEmail(idText)) {
              idType = "Email";
           } else if (checkMobile(idText)) {
              idType = "phone";
           }
           var ret=new Object();
           ret.basis=idType;
           ret.value=idText;
           ret.password=pwdText;
           return JSON.stringify(ret);
        }

         

  3. 问题原因
    1. 是json引包的问题,我引入Jackson的jar包的版本不一致,所以导致了这个问题,看pom.xml
    2. <!--               Jackson            -->
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.10.0</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.9.8</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
          <version>2.9.8</version>
      </dependency>
      <!--               Jackson            -->

       

  4. 解决办法
    1. 把引入Jackson的jar包的版本写成一致的,就能解决了,看pom.xml
    2. <!--               Jackson            -->
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.10.0</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.10.0</version>
      </dependency>
      <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-annotations</artifactId>
          <version>2.10.0</version>
      </dependency>
      <!--               Jackson            -->

       

  5. 效果
  6. 其实就算不用json解析,用这样的方式也是能获取到信息的,只是结果需要你自己去解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM项目任务发布接收平台是一个基于Spring、SpringMVC和MyBatis框架的Java企业级应用,旨在为企业或团队提供高效的任务分配、进度跟踪和协作管理功能。 以下是关于SSM项目任务发布接收平台的详细介绍: 1. **系统功能**:该系统可能包括任务发布、任务接收、任务进度更新、成员管理、通知提醒以及报告生成等功能模块。通过这个平台,团队成员可以清晰地了解各自的任务责任,提高工作效率,同时管理者可以实时监控任务进度,确保项目顺利进行。 2. **技术实现**:项目利用了SSM框架中的Spring进行整体的业务逻辑管理,SpringMVC负责前后端的交互和页面渲染,而MyBatis处理与数据库的交互。这种分层架构确保了系统的高可靠性和易于维护。 3. **前后端分离**:前端可能使用了HTML5、CSS3和JavaScript等技术构建用户界面,后端则使用Java开发,通过RESTful API与前端进行数据交互,提高了系统的可维护性和可扩展性。 4. **数据库设计**:系统后端可能采用了MySQL或其他关系型数据库来存储任务信息、用户资料、进度记录等数据,同时保证了数据的安全性和一致性。 5. **用户体验**:系统提供了清晰直观的用户界面,使得团队成员和管理者能够轻松上手,快速完成各项任务管理和协作工作。 6. **安全性和可扩展性**:系统在用户认证、权限控制等方面进行了严格的设计,以确保数据的安全。同时,系统的模块化设计和遵循的编码标准也便于未来的升级和维护。 总的来说,SSM项目任务发布接收平台是一个高效、现代化的团队协作工具。它不仅能够帮助团队成员明确任务目标和进度,还能够提高团队的协作效率和项目管理能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值