[http-nio-8081-exec-1] ERROR
o.a.c.c.C.[.[localhost].[/].[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException: null
at com.dp.logistictools.controller.SHDLogisticController.SHDLogistic(SHDLogisticController.java:111)
at com.dp.logistictools.controller.SHDLogisticController$$FastClassBySpringCGLIB$$55b562c1.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.adapter.MethodBeforeAdviceInterceptor.invoke(MethodBeforeAdviceInterceptor.java:56)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:55)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.dp.logistictools.controller.SHDLogisticController$$EnhancerBySpringCGLIB$$cb836b82.SHDLogistic(<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.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:189)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1005)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:897)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:882)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
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:52)
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.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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:200)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
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:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1468)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)java
----------------------------------------------------------------------web
解決方案:
以上報錯緣由通常都是所在controller中引入service時候,service上面忘記寫@Resource或者@Autowired註解致使的;spring
java.lang.NullPointerException具體意思是空指針異常,最多見的問題就是沒有初始化。apache
轉:tomcat
在Java中對值爲null的指針調用任何方法,就會引起空指針異常(java.lang.NullPointerException)。空指針異常絕對 是Java中最難查找和調試的一種異常,你永遠沒法獲得任何有用的調試信息。經過我的平常總結和網上搜集整理,概括以下,供你們參考。空指針異常產生的主 要緣由以下:因此在Java中通常報空指針異常的緣由有如下幾種:
1字符串變量未初始化;
2接口類型的對象沒有用具體的類初始化,好比:
List lt;會報錯
List lt = new ArrayList();則不會報錯了
3當一個對象的值爲空時,你沒有判斷爲空的狀況。你能夠試着把下面的代碼前加一行代碼:
if(rb!=null && rb!="")
改爲:
if(rb==null);
if(rb!==null&&rb!="") 或者if((「」).equals(rb))
空指針的解決辦法:
重點關注報錯發生的所在行,經過空指針異常產生的兩條主要緣由診斷具體的錯誤。同時爲了不空指針的發生,最好在作判斷處理時將「null」或者空值放於 設定的值以前。
常見空指針異常的簡要分析:
(1)空指針錯誤
Java中的8種基本數據類型,變量的值能夠有其默認值,加入沒有對其正常賦值,java虛擬機是不能
正確編譯經過的,所以使用基本的Java數據類型通常不會是不會引發空指針異常的。實際開發中,大多數的空指針異常主要與對象的操做相關。
下面列出可能發生空指針異常的幾種狀況及相應解決方案:
代碼段1:
out.println(request.getParameter("username"));
分析:代碼段1的功能十分簡單,就是輸出用戶輸入"username"的值。
說明:看上去,上面的語句找不出什麼語法錯誤,並且在大多數狀況下也遇不到什麼問題。可是,若是某個用戶在輸入數據時並無提供表單 域"username" 的值,或經過某種途徑繞過表單直接輸入時,此request.getParameter("username")的值爲空(注意不是空字符串,是空對象 null。),out對象的println方法是沒法直接對空對象操做的,所以代碼段1所在的JSP頁面將會拋出 "Java.lang.NullPointerException"異常。並且即便對象可能爲空時,也調用Java.lang.Object或 Object對象自己的一些方法如toString(), equal(Object obj)等操做。
代碼段2:
String userName = request.getParameter("username");
If (userName.equals("root"))
{....}
分析:代碼段2的功能是檢測用戶提供的用戶名,若是是用戶名稱爲"root"的用戶時,就執行一些特別的操 做。
說明:在代碼段2中,若是有用戶沒有提供表單域"username"的值時,字符串對象userName爲null值,不可以將一個null的對象與另外一 個對象直接比較,一樣,代碼段2所在的JSP頁面就會拋空指針錯誤。
一個小技巧:若是要把某個方法的返回值與常量作比較,把常量放在前面,能夠避免調用null對象的equals方法。譬如:
If ("root".equals(userName))
{....}
即便userName對象返回了null對象,這裏也不會有空指針異常,能夠照常運轉。
代碼段3:
String userName = session.getAttribute("session.username").toString();
分析:代碼段3的功能是將session中session.username的值取出,並將該值賦給字符串對象userName。
說明:在通常狀況下,若是在用戶已經進行某個會話,則不會出現什麼問題;可是,若是此時應用服務器從新啓動,而用戶尚未從新登陸,(也多是用戶關閉瀏 覽器,可是仍打開原來的頁面。)那麼,此時該session的值就會失效,同時致使session中的session.username的值爲空。對一個 爲 null的對象的直接執行toString()操做,就會致使系統拋出空指針異常。
代碼段4:
public static void main(String args[]){
Person p=null;
p.setName("張三");
System.out.println(p.getName());
}
分析:聲明一個Person對象,並打印出該對象的中的Name名字。
說明:這個時候你的p就出現空指針異常,由於你只是聲明瞭這個Person類型的對象並無建立對象,因此它的堆裏面沒有地址引用,切忌你要用對 象掉用方法的時候必定要建立對象。服務器