jdk7 運行jetty 報錯 java.lang.reflect.InvocationTargetException: null

java.lang.reflect.InvocationTargetException: null
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[na:na]
    at cn.com.bankit.bwp.common.servlet.BaseAction._execute(BaseAction.java:103) [classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.ActionInvocation.invoke(ActionInvocation.java:87) [classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.impl.DBInterceptor.intercept(DBInterceptor.java:74) ~[classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.ActionInvocation.invoke(ActionInvocation.java:90) [classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.impl.AclInterceptor.intercept(AclInterceptor.java:62) ~[classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.ActionInvocation.invoke(ActionInvocation.java:90) [classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.impl.JSonInterceptor.intercept(JSonInterceptor.java:23) ~[classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.ActionInvocation.invoke(ActionInvocation.java:90) [classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.impl.ErrorInterceptor.intercept(ErrorInterceptor.java:22) ~[classes/:na]
    at cn.com.bankit.bwp.common.servlet.intercept.ActionInvocation.invoke(ActionInvocation.java:90) [classes/:na]
    at cn.com.bankit.bwp.common.servlet.BaseAction.execute(BaseAction.java:86) [classes/:na]
    at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58) [struts-core-1.3.10.jar:1.3.10]
    at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67) [struts-core-1.3.10.jar:1.3.10]
    at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51) [struts-core-1.3.10.jar:1.3.10]
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) [commons-chain-1.2.jar:1.2]
    at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305) [commons-chain-1.2.jar:1.2]
    at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191) [commons-chain-1.2.jar:1.2]
    at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283) [struts-core-1.3.10.jar:1.3.10]
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) [struts-core-1.3.10.jar:1.3.10]
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462) [struts-core-1.3.10.jar:1.3.10]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [servlet-api-2.5-20081211.jar:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5-20081211.jar:na]
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221) [jetty-6.1.26.jar:6.1.26]
    at cn.com.bankit.bwp.common.servlet.CheckLoginFilter.doFilter(CheckLoginFilter.java:47) [classes/:na]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) [jetty-6.1.26.jar:6.1.26]
    at cn.com.bankit.bwp.common.servlet.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:36) [classes/:na]
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.Server.handle(Server.java:326) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) [jetty-6.1.26.jar:6.1.26]
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) [jetty-util-6.1.26.jar:6.1.26]
Caused by: java.lang.NoSuchMethodError: javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/servlet/ServletContext;
    at cn.com.bankit.bwp.usermanager.login.LoginAction.login(LoginAction.java:132) ~[classes/:na]
    ... 46 common frames omitted
 

這個錯誤找了半天,在網上也查了半天,網上都是說jdk版本不對或者確實包或者是jar包衝突,

而且我習慣看最上面的錯誤,最後發現下面有一行報錯Caused by: java.lang.NoSuchMethodError javax.servlet.http.HttpServletRequest.getServletContext()Ljavax/servlet/ServletContext;

終於查到是jetty的版本太低了,servlet請求獲取時不能直接寫request.getServletContext();

應該這樣寫:request.getSession().getServletContext();

由於報這個錯的原因有很多,這裏只是記錄了我出現的情況,希望對大家有幫助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章