Classloading: webapp redeploy causing webapp CL to die on lo
cvolk May 16, 2003 11:29 AMI've been trying to resolve this issue for quite a while. The scenario is this:
I have a custom tomcat valve that uses a class in a utility jar (deployed on its own), which in turn uses JAXP to read an XML-based file. On redeployment of any webapp, the webapp classloader fails due to the inability to find/load org.apache.xerces.jaxp.DocumentBuilderFactoryImpl .
This seems to have started with the upgrade to 3.0.5 (which has the new classloader).
The only common ground is the util.jar that is used by valve and webapps alike. However, it's the JAXP class that can't be found, not the util class.
Anyone have sufficient classloader knowledge to help me with this one? This problem is causing management to consider Weblogic!
Exception looks like this:
2003-05-01 18:40:22,607 INFO [STDOUT] WebappClassLoader: Lifecycle error : CL stopped
2003-05-01 18:40:22,609 ERROR [org.jboss.web.localhost.Engine] HttpProcessor[8080][3] process.invoke
javax.xml.parsers.FactoryConfigurationError: Provider org.apache.xerces.jaxp.DocumentBuilderFactoryImpl not found
at javax.xml.parsers.DocumentBuilderFactory.newInstance(DocumentBuilderFactory.java:109)
at com.lehman.fia.crd.util.HttpRequestToObjectDataMapper.loadRules(Unknown Source)
at com.lehman.fia.crd.util.HttpRequestToObjectDataMapper.(Unknown Source)
at com.lehman.fia.crd.valves.UsageLoggingValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at com.lehman.fia.crd.valves.URLRedirectValve.invoke(Unknown Source)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:536)