Thanks for confirming this works!  I put a little documentation here:

http://cwiki.apache.org/confluence/display/GMOxDOC22/Classloading

david jencks

On Dec 15, 2008, at 12:59 PM, Christian Svensson wrote:

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

Reply via email to