You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Arseny <fo...@mail.ru> on 2008/04/08 15:51:38 UTC
Axis 1.4 + Embedded Tomcat 5.5 trouble
Hello!
I`ve got a problem with using axis 1.4 on embedded tomcat.
The problem is that if I restart stop with
axis web app being autodeployed, I get the following exception:
org.apache.catalina.loader.WebappClassLoader - : Illegal access: this
web application instance has been stopped already. Could not load
META-INF/services/org.apache.axis.EngineConfigurationFactory. The
eventual following stack trace is caused by an error thrown for
debugging purposes as well as to attempt to terminate the thread which
caused the illegal access, and has no functional impact.
org.apache.catalina.loader.WebappClassLoader - : Illegal access: this
web application instance has been stopped already. Could not load
org/apache/axis/configuration/EngineConfigurationFactoryServlet.class.
The eventual following stack trace is caused by an error thrown for
debugging purposes as well as to attempt to terminate the thread which
caused the illegal access, and has no functional impact.
org.apache.catalina.loader.WebappClassLoader - : Illegal access: this
web application instance has been stopped already. Could not load
org.apache.axis.configuration.EngineConfigurationFactoryServlet. The
eventual following stack trace is caused by an error thrown for
debugging purposes as well as to attempt to terminate the thread which
caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1249)
at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209)
at
org.apache.commons.discovery.ResourceClass$1.run(ResourceClass.java:77)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.commons.discovery.ResourceClass.loadClass(ResourceClass.java:73)
at
org.apache.axis.configuration.EngineConfigurationFactoryFinder$1.run(EngineConfigurationFactoryFinder.java:122)
at java.security.AccessController.doPrivileged(Native Method)
at
org.apache.axis.configuration.EngineConfigurationFactoryFinder.newFactory(EngineConfigurationFactoryFinder.java:113)
at
org.apache.axis.transport.http.AxisServletBase.getEngineEnvironment(AxisServletBase.java:273)
at
org.apache.axis.transport.http.AxisServletBase.getEngine(AxisServletBase.java:172)
at
org.apache.axis.transport.http.AxisServletBase.getOption(AxisServletBase.java:396)
at
org.apache.axis.transport.http.AxisServletBase.init(AxisServletBase.java:112)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1139)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:966)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3956)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4230)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544)
I looked through the sources and found out the problem:
When AxisServlet creates new EngineConfigurationFactory it searches for
its implementation classes using classloaders taken from AxisProperties.
AxisProperties has a static list of them that is created at the first
access and never updated.
At the same time, WebappClassLoader instance which is loaded in the list
is tied with the application lifecycle and is throwing the mentioned
exception if it is tried to be used after the web application context
was stopped.
I see several options to remove this exception:
1. Not to log this scaring exception with INFO in WebappClassLoader
2. Be able to reset (update?) the classloaders list in AxisProperties
3. Just set Logger priority for the WebappClassLoader class to WARN :)
The option I chose
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org