SSM報錯Request processing failed; nested exception is java.lang.NullPointerException] with root cause
阿新 • • 發佈:2018-12-19
畢業在公司一年以來一直做得是比較簡單的開發工作,什麼開發新功能點啦,修改bug啦,做webservices介面啦。感覺這麼長時間以來沒有多大的進步,恰巧,前一個月,領導要求我開發一個介面,要求是,呼叫公司內網的webservices,之後返回報文給ios端和android端呼叫。
webservices介面開發完之後,又接到了一個新需求,就是需要再開發一個可以提供給app端一些資料,這些資料需要我從資料庫裡查詢出來然後再給app呼叫。
當時領導把這個任務交給了同事,但是由於這個需求是要寫在我開發的webservices介面的專案裡,於是自告奮勇向領導要回了這個介面的開發權。
可是,自從畢業以後就做一些簡單任務的我,竟然連SSM的使用都忘得一乾二淨了。結果專案在執行的的時候就報了這個錯誤。
錯誤資訊:
嚴重: Servlet.service() for servlet [dispatcherServlet] in context with path [/Interfaces] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
at com.app.dataServices.ConnectService.getLifeTime(ConnectService.java :12)
at com.app.dataController.DataController.lifeTimes(DataController.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang .reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
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:745)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
services部分方法程式碼:
@Autowired
private static ConnectMapper connectMapper;
public static String getLifeTime(){
String str = connectMapper.getLifeTime();
return str;
}
經過一番百度查詢結果導致這個錯誤的原因竟然是static惹的禍,氣死老子了。
下面是修改後的程式碼:
@Autowired
private ConnectMapper connectMapper;
public String getLifeTime(){
String str = connectMapper.getLifeTime();
return str;
}
去掉了static之後錯誤就沒有了。
希望你們不要入坑了,引以為戒。