Hello again. I put xercesImpl.jar in the endorsed directory and it seems to be working. At least it survived a couple of redeployments.
Thanks Greetings, On Mon, Dec 15, 2008 at 9:49 PM, Christian Svensson <[email protected]> wrote: > Hello. > > I'm using Geronimo 2.1.4-SNAPSHOT downloaded today. > Xerces is the latest, 2.9.1 if I'm not mistaken. > > I'm putting xercesImpl.jar in my WEB-INF/lib directory. > > I'll try experimenting with the endorsed directory. > > Greetings. > > > On Mon, Dec 15, 2008 at 9:33 PM, David Jencks <[email protected]>wrote: > >> Which geronimo, which xerces, and how are you making your xerces available >> to your app? >> It's been a very long time since I dealt with this kind of problem but I >> have a faint memory that xml parsers are "endorsed" which basically means >> that classloading for them is completely messed up. I think you may need to >> put your copy of xerces in <geronimo-home>/lib/endorsed. However I get >> endorsed and ext mixed up and it might be lib/ext. >> >> hope this helps more than it confuses. >> >> david jencks >> >> On Dec 15, 2008, at 10:53 AM, Christian Svensson wrote: >> >> Hello. >> >> I'm trying to make OpenJPA and Xerces play along. >> >> When I use my code as is without Xerces, everything works until I use new >> DocumentImpl(); - no surprise there. >> >> When I add my xercesImpl.jar, sometimes it works (I suppose when the >> ClassLoader hasn't got poisoned) and then it stops when I redeploy: >> >> org.apache.openjpa.persistence.PersistenceException: >> org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to >> org.apache.xerces.xni.parser.XMLParserConfiguration >> >> at >> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:196) >> >> at >> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) >> at >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) >> at >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) >> >> >> at >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) >> at org.cmd.web.fileserver.Browser.doGet(Browser.java:51) >> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) >> >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) >> at >> org.apache.geronimo.jetty6.InternalJettyServletHolder.handle(InternalJettyServletHolder.java:65) >> >> >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) >> at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> >> >> at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) >> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) >> at >> org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101(TwistyWebAppContext.java:40) >> >> >> at >> org.apache.geronimo.jetty6.handler.TwistyWebAppContext$TwistyHandler.handle(TwistyWebAppContext.java:65) >> at >> org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle(ThreadClassloaderHandler.java:46) >> >> at >> org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle(InstanceContextHandler.java:58) >> >> at >> org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle(UserTransactionHandler.java:48) >> at >> org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle(ComponentContextHandler.java:47) >> at >> org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle(TwistyWebAppContext.java:59) >> >> >> at >> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) >> at >> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >> at >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) >> >> >> at org.mortbay.jetty.Server.handle(Server.java:324) >> at >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) >> at >> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) >> >> >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) >> at >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) >> >> >> at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214) >> at >> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >> >> >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >> at java.lang.Thread.run(Thread.java:619) >> Caused by: java.lang.ClassCastException: >> org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to >> org.apache.xerces.xni.parser.XMLParserConfiguration >> >> >> at org.apache.xerces.parsers.DOMParser.(Unknown Source) >> at org.apache.xerces.parsers.DOMParser.(Unknown Source) >> at org.apache.xerces.jaxp.DocumentBuilderImpl.(Unknown Source) >> at >> org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown >> Source) >> >> >> at >> org.apache.openjpa.lib.xml.XMLFactory.getDOMParser(XMLFactory.java:107) >> at >> org.apache.openjpa.jdbc.sql.SQLErrorCodeReader.parse(SQLErrorCodeReader.java:107) >> at >> org.apache.openjpa.jdbc.sql.DBDictionary.endConfiguration(DBDictionary.java:4128) >> >> >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505) >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430) >> at >> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:155) >> >> >> at >> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:99) >> at >> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:562) >> at >> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265) >> >> >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505) >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430) >> at >> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103) >> >> >> at >> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68) >> at >> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83) >> at >> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863) >> >> >> at >> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854) >> at >> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638) >> >> >> at >> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183) >> ... 36 more >> >> Caused by: >> >> java.lang.ClassCastException: >> org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to >> org.apache.xerces.xni.parser.XMLParserConfiguration >> >> >> at org.apache.xerces.parsers.DOMParser.(Unknown Source) >> at org.apache.xerces.parsers.DOMParser.(Unknown Source) >> at org.apache.xerces.jaxp.DocumentBuilderImpl.(Unknown Source) >> at >> org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown >> Source) >> >> >> at >> org.apache.openjpa.lib.xml.XMLFactory.getDOMParser(XMLFactory.java:107) >> at >> org.apache.openjpa.jdbc.sql.SQLErrorCodeReader.parse(SQLErrorCodeReader.java:107) >> at >> org.apache.openjpa.jdbc.sql.DBDictionary.endConfiguration(DBDictionary.java:4128) >> >> >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505) >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430) >> at >> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:155) >> >> >> at >> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:99) >> at >> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:562) >> at >> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1265) >> >> >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:505) >> at >> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:430) >> at >> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:103) >> >> >> at >> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68) >> at >> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83) >> at >> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:863) >> >> >> at >> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:854) >> at >> org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:638) >> >> >> at >> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:183) >> at >> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:142) >> at >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:192) >> >> >> at >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:145) >> at >> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:56) >> >> >> at org.cmd.web.fileserver.Browser.doGet(Browser.java:51) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:693) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) >> >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) >> >> at >> org.apache.geronimo.jetty6.InternalJettyServletHolder.handle(InternalJettyServletHolder.java:65) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) >> at >> org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) >> >> >> at >> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) >> at >> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726) >> at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) >> >> >> at >> org.apache.geronimo.jetty6.handler.TwistyWebAppContext.access$101(TwistyWebAppContext.java:40) >> at >> org.apache.geronimo.jetty6.handler.TwistyWebAppContext$TwistyHandler.handle(TwistyWebAppContext.java:65) >> at >> org.apache.geronimo.jetty6.handler.ThreadClassloaderHandler.handle(ThreadClassloaderHandler.java:46) >> >> >> at >> org.apache.geronimo.jetty6.handler.InstanceContextHandler.handle(InstanceContextHandler.java:58) >> at >> org.apache.geronimo.jetty6.handler.UserTransactionHandler.handle(UserTransactionHandler.java:48) >> at >> org.apache.geronimo.jetty6.handler.ComponentContextHandler.handle(ComponentContextHandler.java:47) >> >> >> at >> org.apache.geronimo.jetty6.handler.TwistyWebAppContext.handle(TwistyWebAppContext.java:59) >> at >> org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206) >> at >> org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114) >> >> >> at >> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) >> at org.mortbay.jetty.Server.handle(Server.java:324) >> at >> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) >> at >> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:828) >> >> >> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) >> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) >> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) >> at >> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) >> >> >> at org.apache.geronimo.pool.ThreadPool$1.run(ThreadPool.java:214) >> at >> org.apache.geronimo.pool.ThreadPool$ContextClassLoaderRunnable.run(ThreadPool.java:344) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >> >> >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >> at java.lang.Thread.run(Thread.java:619) >> >> >> As a novice I see two options: >> >> a) Use the same xerces as OpenJPA - I've been unsuccessful in locating it >> though. >> b) Shield the application somehow. I know that EARs have hidden-classes, >> but reading mailing lists it would see that it does not work with Xerces - >> why I'm not sure. >> >> How do I get around this issue? >> >> Greetings, >> -- >> Christian Svensson >> Command Systems >> >> >> > > > -- > Christian Svensson > Command Systems > -- Christian Svensson Command Systems
