Hi Jim,

Sorry it's taken be a bit to get back to this. I've taken a look around and can't find anything that would cause this issue.

We load the persistence provider using the application's classloader, in this case the webapp classloader. The NoClassDefFoundError might be coming from a missing or misplaced jar.

Where is the jar that contains org.eclipse.persistence.jpa.PersistenceProvider and where is the jar that contains org.eclipse.persistence.transaction.JTATransactionController? Seems the issue occurs possibly because the EclipseLink PersistenceProvider class cannot see (or sees a version from the wrong classloder) its JTATransactionController class.

Hope this helps.  I admit I'm still scratching my head :)


-David


On Jul 31, 2009, at 7:43 AM, JimOR wrote:


David,

I appreciate the quick response.


David Blevins wrote:


At line Assembler.java:794 we preemptively create an UndeployException
at the beginning of every undeploy and fill in with information and
only throw at the end of undeployment if issues are found. So in this
case the snip'ed out part as the data we need.  If you could post
that, that would be great.



Here's the full trace:


[2009-07-31 09:02:08.531] INFO-
org.apache.openejb.util.Log4jLogStream.info(Line:70) - Undeploying app: C:\EclipseGalileoBase\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\wtpwebapps\sample
[2009-07-31 09:02:08.531]DEBUG-
org.apache.openejb.util.Log4jLogStream.debug(Line:86) - App failing
deployment may not have undeployed cleanly:
C:\EclipseGalileoBase\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\wtpwebapps\sample
org.apache.openejb.UndeployException: Failed undeploying application:
id=C:\EclipseGalileoBase\.metadata\.plugins \org.eclipse.wst.server.core\tmp0\wtpwebapps\sample
        at
org .apache .openejb .assembler.classic.Assembler.destroyApplication(Assembler.java:794)
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:654)
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:442)
        at
org .apache .openejb .tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java: 249)
        at
org .apache .openejb .tomcat .catalina.TomcatLoader.processRunningApplications(TomcatLoader.java: 224)
        at
org .apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java: 141)
        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:597)
        at org.apache.openejb.loader.Embedder.init(Embedder.java:75)
at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java: 98)
        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:597)
        at
org .apache .openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:77)
        at
org .apache.openejb.tomcat.loader.LoaderServlet.init(LoaderServlet.java: 44)
        at
org .apache .catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java: 993)
        at
org .apache .catalina.core.StandardContext.loadOnStartup(StandardContext.java: 4149)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java: 4458)
        at
org .apache .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java: 526)
        at
org .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java: 630)
        at
org .apache .catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
        at
org .apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 314)
        at
org .apache .catalina .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java: 516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Nested caused by: java.lang.Exception: persistence-unit: sample 2136679317:
Name "openejb/PersistenceUnit/sample 2136679317" not found.
        at
org .apache .openejb .assembler.classic.Assembler.destroyApplication(Assembler.java:885)
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:654)
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:442)
        at
org .apache .openejb .tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java: 249)
        at
org .apache .openejb .tomcat .catalina.TomcatLoader.processRunningApplications(TomcatLoader.java: 224)
        at
org .apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java: 141)
        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:597)
        at org.apache.openejb.loader.Embedder.init(Embedder.java:75)
at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java: 98)
        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:597)
        at
org .apache .openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:77)
        at
org .apache.openejb.tomcat.loader.LoaderServlet.init(LoaderServlet.java: 44)
        at
org .apache .catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java: 993)
        at
org .apache .catalina.core.StandardContext.loadOnStartup(StandardContext.java: 4149)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java: 4458)
        at
org .apache .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java: 526)
        at
org .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java: 630)
        at
org .apache .catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
        at
org .apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 314)
        at
org .apache .catalina .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java: 516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: javax.naming.NameNotFoundException: Name
"openejb/PersistenceUnit/sample 2136679317" not found.
        at
org .apache.openejb.core.ivm.naming.IvmContext.federate(IvmContext.java: 198)
        at
org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java: 155)
        at
org .apache .openejb .assembler.classic.Assembler.destroyApplication(Assembler.java:878)
        ... 43 more
[2009-07-31 09:02:08.546]ERROR-
org.apache.openejb.util.Log4jLogStream.error(Line:50) - Unable to deploy
collapsed ear in war /sample: Exception: Creating application failed:
C:\EclipseGalileoBase\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\wtpwebapps\sample:
org/eclipse/persistence/transaction/JTATransactionController
org.apache.openejb.OpenEJBException: Creating application failed:
C:\EclipseGalileoBase\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\wtpwebapps\sample:
org/eclipse/persistence/transaction/JTATransactionController
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:658)
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:442)
        at
org .apache .openejb .tomcat.catalina.TomcatWebAppBuilder.start(TomcatWebAppBuilder.java: 249)
        at
org .apache .openejb .tomcat .catalina.TomcatLoader.processRunningApplications(TomcatLoader.java: 224)
        at
org .apache.openejb.tomcat.catalina.TomcatLoader.init(TomcatLoader.java: 141)
        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:597)
        at org.apache.openejb.loader.Embedder.init(Embedder.java:75)
at org.apache.openejb.tomcat.loader.TomcatHook.hook(TomcatHook.java: 98)
        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:597)
        at
org .apache .openejb.tomcat.loader.TomcatEmbedder.embed(TomcatEmbedder.java:77)
        at
org .apache.openejb.tomcat.loader.LoaderServlet.init(LoaderServlet.java: 44)
        at
org .apache .catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java: 993)
        at
org .apache .catalina.core.StandardContext.loadOnStartup(StandardContext.java: 4149)
        at
org.apache.catalina.core.StandardContext.start(StandardContext.java: 4458)
        at
org .apache .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java: 526)
        at
org .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java: 630)
        at
org .apache .catalina.startup.HostConfig.deployDescriptors(HostConfig.java:556) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:491)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)
        at
org .apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 314)
        at
org .apache .catalina .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java: 516) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:583)
        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:597)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.NoClassDefFoundError:
org/eclipse/persistence/transaction/JTATransactionController
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java: 124)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at
org .apache .catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1374)
        at
org .apache .catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1233)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at
org .eclipse .persistence .internal .security .PrivilegedAccessHelper.getClassForName(PrivilegedAccessHelper.java: 86)
        at
org .eclipse .persistence .internal .jpa.EntityManagerSetupImpl.findClass(EntityManagerSetupImpl.java:540)
        at
org .eclipse .persistence .internal .jpa .EntityManagerSetupImpl .findClassForProperty(EntityManagerSetupImpl.java:546)
        at
org .eclipse .persistence .internal .jpa .EntityManagerSetupImpl .updateServerPlatform(EntityManagerSetupImpl.java:373)
        at
org .eclipse .persistence .internal .jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:721)
        at
org .eclipse .persistence .jpa .PersistenceProvider .createContainerEntityManagerFactory(PersistenceProvider.java:216)
        at
org .apache .openejb .assembler .classic .PersistenceBuilder .createEntityManagerFactory(PersistenceBuilder.java:183)
        at
org .apache .openejb .assembler.classic.Assembler.createApplication(Assembler.java:482)
        ... 42 more
Caused by: java.lang.ClassNotFoundException:
org.eclipse.persistence.transaction.JTATransactionController
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
        ... 65 more



David Blevins wrote:


And the following appears after creating the EntityManagerFactory:
WARNING: Found unrecognized persistence provider
"org.eclipse.persistence.jpa.PersistenceProvider" in place of OpenJPA
provider.  This provider's properties will not be used.

That's definitely very strange indeed. That's a very unfamiliar error message to me and is very out of character for us to complain that you
are using a different JPA provider.  I looked and cannot find that
error string anywhere in our code.  I'd try adjusting your logging
settings so the category is printed with the message as that might
help us figure out where the message is coming from.



I did some more digging, and it's coming out of OpenJPA. One of the 'public
ConfigurationProvider load(...)' methods in
persistence\PersistenceProductDerivation.java which spit the message before returning null, I guess saying "the provider you're looking for is not me". In any case createFactory() happily moves on to the next provider, and my
app moves on...


Jim

--
View this message in context: 
http://www.nabble.com/Eclipselink-JPA-RESOURCE_LOCAL-PersistenceUnit-with-Tomcat-embedded-tp24746512p24757624.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Reply via email to