Hi all,

Is there a way for webapps to declare jars that can override jars in Tomcat's common/endorsed directory? For example, if I want to my webapp to use a specific version of Xerces, independent of what gets distributed with Tomcat, what do I have to do? Right now, with Tomcat 4.1.18, if I have a copy of xercesImpl.jar in /WEB-INF/lib I get:

Exception during startup processing
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(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:324)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)
Caused by: java.lang.VerifyError: Cannot inherit from final class
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1664)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:953)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1394)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1274)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.createContentDispatcher(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.<init>(XMLDocumentFragmentScannerImpl.java:249)
at org.apache.xerces.impl.XMLDocumentScannerImpl.<init>(XMLDocumentScannerImpl.java:245)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.<init>(Unknown Source)
at org.apache.xerces.parsers.IntegratedParserConfiguration.createDocumentScanner(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.<init>(DTDConfiguration.java:367)
at org.apache.xerces.parsers.StandardParserConfiguration.<init>(StandardParserConfiguration.java:198)
at org.apache.xerces.parsers.IntegratedParserConfiguration.<init>(Unknown Source)
at org.apache.xerces.parsers.IntegratedParserConfiguration.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:296)
at java.lang.Class.newInstance(Class.java:249)
at org.apache.xerces.util.ObjectFactory.newInstance(ObjectFactory.java:266)
at org.apache.xerces.util.ObjectFactory.findJarServiceProvider(ObjectFactory.java:360)
at org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:185)
at org.apache.xerces.util.ObjectFactory.createObject(ObjectFactory.java:120)
at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:140)
at org.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:125)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:102)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(SAXParserFactoryImpl.java:95)
at org.apache.commons.digester.Digester.getParser(Digester.java:676)
at org.apache.commons.digester.Digester.getXMLReader(Digester.java:892)
at org.apache.commons.digester.Digester.parse(Digester.java:1495)
at org.apache.catalina.startup.ContextConfig.defaultConfig(ContextConfig.java:548)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:638)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:243)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3567)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)
at org.apache.catalina.core.StandardService.start(StandardService.java:497)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2189)
at org.apache.catalina.startup.Catalina.start(Catalina.java:512)
at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)
at org.apache.catalina.startup.Catalina.process(Catalina.java:180)
... 5 more


Any help on this would be greatly appreciated. Please cc: me in when responding since I'm not subscribed to the tomcat-user mailing list.

Thanks,
-Mark

P/S - it would have been a great help if the error message included which jarfile it was barfing on!


--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to