com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
作者原創,轉載請注明轉載地址
第一次遇到該異常,在網上搜了很長時間也沒找到解決答案,特此記錄
1.異常展示:
com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
?at [Source: java.io.StringReader@11a92b24; line: 1, column: 1]
?? ?at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
?? ?at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2931)
?? ?at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2873)
?? ?at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)
?? ?at com.allcam.system.utils.JSonUtils.readValue(JSonUtils.java:30)
?? ?at com.allcam.system.manager.statistics.impl.UserResourceDayStatisticsServiceImpl.getResourceDayStatistics(UserResourceDayStatisticsServiceImpl.java:45)
?? ?at com.allcam.system.manager.statistics.impl.UserResourceDayStatisticsServiceImpl$$FastClassByCGLIB$$6b11b7f.invoke(<generated>)
?? ?at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
?? ?at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:710)
?? ?at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
?? ?at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
?? ?at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
?? ?at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
?? ?at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
?? ?at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
?? ?at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
?? ?at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:643)
?? ?at com.allcam.system.manager.statistics.impl.UserResourceDayStatisticsServiceImpl$$EnhancerByCGLIB$$65dd2f5a.getResourceDayStatistics(<generated>)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?? ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?? ?at java.lang.reflect.Method.invoke(Method.java:498)
?? ?at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
?? ?at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
?? ?at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
?? ?at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
?? ?at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262)
?? ?at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
?? ?at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
?? ?at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
?? ?at com.sun.proxy.$Proxy56.getResourceDayStatistics(Unknown Source)
?? ?at com.allcam.system.manager.statistics.controller.UserResourceDayStatisticsController.getUserResourceDayStatistics(UserResourceDayStatisticsController.java:41)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
?? ?at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
?? ?at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
?? ?at java.lang.reflect.Method.invoke(Method.java:498)
?? ?at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
?? ?at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
?? ?at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
?? ?at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)[2017-08-16 17:06:54,911][DEBUG][org.apache.http.impl.conn.Wire.wire(Wire.java:72)][http-nio-8080-exec-3] -? << "HTTP/1.1 200 OK[\r][\n]" -
[2017-08-16 17:06:54,912][DEBUG][org.apache.http.impl.conn.Wire.wire(Wire.java:72)][http-nio-8080-exec-3] -? << "Server: Apache-Coyote/1.1[\r][\n]" -
2.異常解析,本異常報錯的原因為調用webservice服務,從webservice返回的對象沒有將其轉為json對象,而是直接將對象返回了,所以從webservice返回的時候
就報了此錯誤,
3.解決方案:將webservice返回的對象轉化為json格式,,特此將原代碼貼出:
@ResponseBody@RequestMapping(value="resDayStatistics")public String getUserResourceDayStatistics(HttpServletRequest request,HttpServletResponse response){UserResourceDayStatistics dayStatistics2 = new UserResourceDayStatistics();try{UserResourceDayStatistics dayStatistics = new UserResourceDayStatistics();InputStream inputStream= request.getInputStream();String reqJson=IOUtils.toString(inputStream,ServiceContants.UTF8_CODE);if(reqJson != null && reqJson != ""){//json轉成UserResourceDayStatistics對象dayStatistics=JSonUtils.readValue(reqJson, UserResourceDayStatistics.class);}dayStatistics2=dayService.getResourceDayStatistics(dayStatistics);}catch (Exception e){e.printStackTrace();}// return "/main/webapp/dayStatistics.jsp";return JSonUtils.toJSon(dayStatistics2); //返回json格式對象} }由于要返回的是一個json對象,所以在方法頭上加一個@ResponseBody注解,該注解的作用是將返回結果的格式寫入到返回結果中,否則就會解析為一個頁面。。。。。。
?
總結
以上是生活随笔為你收集整理的com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解决windows系统80端口被占用问题
- 下一篇: js操作文件