HTTP Status 500 - Could not write content: Object is null 解决方法

时间:2024-02-18 07:01:54

错误描述:使用jqGrid获取json数据并插入至表中,System.out.print可以正常输出jsonObject对象数据,但返回至页面时抛出异常

GET http://localhost:8080/*.do?500 (Internal Server Error)

type Exception report

message Could not write content: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[5]->net.sf.json.JSONObject["cell"]->net.sf.json.JSONArray[4]->net.sf.json.JSONNull["empty"]);
nested exception is com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[5]->net.sf.json.JSONObject["cell"]
->net.sf.json.JSONArray[4]->net.sf.json.JSONNull["empty"]) description The server encountered an internal error that prevented it from fulfilling this request. exception org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[5]->net.sf.json.JSONObject["cell"]
->net.sf.json.JSONArray[4]->net.sf.json.JSONNull["empty"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["rows"]
->net.sf.json.JSONArray[5]->net.sf.json.JSONObject["cell"]->net.sf.json.JSONArray[4]->net.sf.json.JSONNull["empty"]) org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal(AbstractJackson2HttpMessageConverter.java:238) org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:208) org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:161) org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:101) org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:167) org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:71) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:126) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:776) org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:705) org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857) javax.servlet.http.HttpServlet.service(HttpServlet.java:624) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842) javax.servlet.http.HttpServlet.service(HttpServlet.java:731) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

 返回500错误有很多种可能性,上述错误问题其实很简单,jsonObject对象内包含别的对象,且存在某object值为NULL。

如果你的返回值中不存在null,不会报错,一旦有null字段,则无法插入到jqGrid中,并报上述错误。

解决方案:为了程序的健壮性,最好不要在json数据中直接存null,可以在转json格式时加一个判断,存在字段为null则将其赋值为“ ”(空字符串),然后传输时就不会出现上述错误了。

 

 

解决异常还是要仔细看错误提示,自己看提示调试有时候比直接百度来的更有效。

 

啦啦啦 ……

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

 

500其他可能性:

1.json序列化的问题{ 

                                   1.1没有写@responseBody

          1.2可以尝试使用MappingJacksonView做解析

                               }

2.确认json序列化没问题,通过其他方式你可以正常输出的话,可以看一下是否因为数据量过大而造成异常,修改web.config配置文件

以上具体解决方法百度上都有详解。