Java 字节码注入后Tomcat类加载异常
我将invoke语句(cajolingMe.cajoleMe();)注入到的一个类(HammerHead.class)中。这个方法是一个静态方法,它从一个jar文件调用,这个jar文件由Java 字节码注入后Tomcat类加载异常,java,tomcat,http-status-code-404,bytecode,bcel,Java,Tomcat,Http Status Code 404,Bytecode,Bcel,我将invoke语句(cajolingMe.cajoleMe();)注入到的一个类(HammerHead.class)中。这个方法是一个静态方法,它从一个jar文件调用,这个jar文件由我将该jar复制到[webgoat][3]web应用程序的lib目录。 当我反编译注入的类时,没有问题,语法为true。 (插入的代码以粗体显示) 但是当我运行tomcat时,我看到了这个异常 31, 2013 12:31:59 PM org.apache.coyote.http11.Http11Protoc
我将该jar复制到[webgoat][3]web应用程序的lib目录。
当我反编译注入的类时,没有问题,语法为true。
(插入的代码以粗体显示)
但是当我运行tomcat时,我看到了这个异常
31, 2013 12:31:59 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-127.0.0.1-8080
jan 31, 2013 12:31:59 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-127.0.0.1-8443
jan 31, 2013 12:31:59 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 549 ms
jan 31, 2013 12:32:00 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina <br/> jan 31, 2013 12:32:00 PM org.apache.catalina.core.StandardEngine start <br/>INFO: Starting Servlet Engine: Apache Tomcat/5.5.4
jan 31, 2013 12:32:00 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
jan 31, 2013 12:32:00 PM org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: Iorg.apache.webapp.balancer.RuleChain: Corg.apache.w bapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], Corg.apache.webapp.bal .ncer.rules.RequestParameterRule: Target param name: paramName / Target param paramUalue / Redirect URL: http://www.yahoo.com], Iorg.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
**-Marking serv let WebGoat as unavailable Servlet /WebGoat threw load() exception 'avax.servlet.ServletException: Error instantiating servlet class org.owasp.webgoat.HammerHead**
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1020)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:886)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3817)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4079)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:755)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:886)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:849)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1079)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1011)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:437)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2010)
at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
at sun.reflect.NativeMethodAccessorImpl.invokeO(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
jan 31, 2013 12:32:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-127.0.0.1-8080 <br/> jan 31, 2013 12:32:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-127.0.0.1-8443
jan 31, 2013 12:32:01 PM org.apache.jk.common.ChannelSocket init
INFO: JH2: ajp13 listening on /127.0.0.1:8009 <br/> jan 31, 2013 12:32:01 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/11 config=null
jan 31, 2013 12:32:01 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1134 ms
312013:31:59 PM org.apache.coyote.http11.Http11Protocol init
信息:在HTTP-127.0.0.1-8080上初始化郊狼HTTP/1.1
2013年1月31日12:31:59 PM org.apache.coyote.http11.Http11Protocol init
信息:在HTTP-127.0.0.1-8443上初始化郊狼HTTP/1.1
2013年1月31日12:31:59 PM org.apache.catalina.startup.catalina load
信息:549毫秒内处理初始化
2013年1月31日中午12:32:00 org.apache.catalina.core.StandardService启动
信息:启动服务Catalina
2013年1月31日12:32:00 PM org.apache.Catalina.core.StandardEngine启动
信息:启动Servlet引擎:apache Tomcat/5.5.4
2013年1月31日中午12:32:00 org.apache.catalina.core.StandardHost启动
信息:已禁用XML验证
2013年1月31日中午12:32:00 org.apache.catalina.core.ApplicationContext日志
信息:org.apache.webapp.balancer.BalancerFilter:init():规则链:Iorg.apache.webapp.balancer.ruleChain:Corg.apache.w bapp.balancer.rules.URLStringMatchRule:目标字符串:新闻/重定向URL:http://www.cnn.com],Corg.apache.webapp.bal.ncer.rules.RequestParameterRule:目标参数名称:paramName/目标参数参数值/重定向URL:http://www.yahoo.com],Iorg.apache.webapp.balancer.rules.AcceptEverythingRule:重定向URL:http://jakarta.apache.org]]
**-将serv let WebGoat标记为不可用Servlet/WebGoat引发load()异常“avax.Servlet.ServletException:实例化Servlet类org.owasp.WebGoat.HammerHead时出错”**
位于org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1020)
位于org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:886)
位于org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3817)
位于org.apache.catalina.core.StandardContext.start(StandardContext.java:4079)
位于org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:755)
位于org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
位于org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
位于org.apache.catalina.startup.HostConfig.deploy目录(HostConfig.java:886)
位于org.apache.catalina.startup.HostConfig.deploy目录(HostConfig.java:849)
位于org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
位于org.apache.catalina.startup.HostConfig.start(HostConfig.java:1079)
位于org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
在org.apache.catalina.util.LifecycleSupport.FireLifecycleSupport(LifecycleSupport.java:119)上
位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1011)
位于org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
位于org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
位于org.apache.catalina.core.StandardEngine.start(StandardEngine.java:437)
位于org.apache.catalina.core.StandardService.start(StandardService.java:450)
位于org.apache.catalina.core.StandardServer.start(StandardServer.java:2010)
位于org.apache.catalina.startup.catalina.start(catalina.java:537)
在sun.reflect.NativeMethodAccessorImpl.invokeO(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)中
位于java.lang.reflect.Method.invoke(Method.java:597)
位于org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
位于org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
2013年1月31日12:32:01 PM org.apache.coyote.http11.http11协议启动
信息:在HTTP-127.0.0.1-8080上启动郊狼HTTP/1.1
2013年1月31日12:32:01 PM org.apache.Coyote.http11.http11协议启动
信息:在HTTP-127.0.0.1-8443上启动Coyote HTTP/1.1
2013年1月31日12:32:01 PM org.apache.jk.common.ChannelSocket init
信息:JH2:ajp13监听/127.0.0.1:8009
2013年1月31日12:32:01 PM org.apache.jk.server.JkMain开始
信息:Jk运行ID=0时间=0/11配置=null
2013年1月31日12:32:01 PM org.apache.catalina.startup.catalina start
信息:服务器在1134毫秒内启动
而webgoat站点是“HTTP状态404”
我使用[BCEL][5]
进行注射。
问题在哪里?我怀疑这里存在类加载问题。为了调查,你能调试你的Tomcat吗?如果是,请在ServletException上放置一个异常断点,并尝试跟踪导致它的原因(希望它是另一个信息更丰富的异常)。
31, 2013 12:31:59 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-127.0.0.1-8080
jan 31, 2013 12:31:59 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on http-127.0.0.1-8443
jan 31, 2013 12:31:59 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 549 ms
jan 31, 2013 12:32:00 PM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina <br/> jan 31, 2013 12:32:00 PM org.apache.catalina.core.StandardEngine start <br/>INFO: Starting Servlet Engine: Apache Tomcat/5.5.4
jan 31, 2013 12:32:00 PM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
jan 31, 2013 12:32:00 PM org.apache.catalina.core.ApplicationContext log
INFO: org.apache.webapp.balancer.BalancerFilter: init(): ruleChain: Iorg.apache.webapp.balancer.RuleChain: Corg.apache.w bapp.balancer.rules.URLStringMatchRule: Target string: News / Redirect URL: http://www.cnn.com], Corg.apache.webapp.bal .ncer.rules.RequestParameterRule: Target param name: paramName / Target param paramUalue / Redirect URL: http://www.yahoo.com], Iorg.apache.webapp.balancer.rules.AcceptEverythingRule: Redirect URL: http://jakarta.apache.org]]
**-Marking serv let WebGoat as unavailable Servlet /WebGoat threw load() exception 'avax.servlet.ServletException: Error instantiating servlet class org.owasp.webgoat.HammerHead**
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1020)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:886)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3817)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4079)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:755)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:886)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:849)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:474)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1079)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:310)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1011)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1003)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:437)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2010)
at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
at sun.reflect.NativeMethodAccessorImpl.invokeO(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
jan 31, 2013 12:32:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-127.0.0.1-8080 <br/> jan 31, 2013 12:32:01 PM org.apache.coyote.http11.Http11Protocol start
INFO: Starting Coyote HTTP/1.1 on http-127.0.0.1-8443
jan 31, 2013 12:32:01 PM org.apache.jk.common.ChannelSocket init
INFO: JH2: ajp13 listening on /127.0.0.1:8009 <br/> jan 31, 2013 12:32:01 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/11 config=null
jan 31, 2013 12:32:01 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1134 ms