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();

由于报这个错的原因有很多,这里只是记录了我出现的情况,希望对大家有帮助。

你可能感兴趣的:(jdk7 运行jetty 报错 java.lang.reflect.InvocationTargetException: null)