tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Blevins <david.blev...@visi.com>
Subject Re: OutOfMemory doing a JUnit using OpenEJB Embedded
Date Thu, 12 Nov 2009 23:35:40 GMT
The JPA API version that we bundle is JPA 1.0.  Those classes are in  
the javaee-api.jar.  It is possible to delete that jar and then use  
the individual libraries instead.  There's a zip of them here:

    http://www.apache.org/dist/openejb/3.1.2/javaee-api-libs-3.1.2-src.zip

Then you can replace the jpa api jar with a JPA 2.0 version.  I don't  
know if it will *work* as if there are new methods in the  
EntityManager interface, then likely there'll be vm errors complaining  
that we don't implement them.  There are parts of JPA that the EJB  
container has to implement to support any @PersistenceContext injection.

So not sure if it will work, but it should be pretty quick to find  
out :)

Note, if it doesn't work, we might be able to find some sneaky way to  
support it in the next release.  Any help is certainly welcome.

-David


On Nov 12, 2009, at 1:23 PM, PatLaPatate wrote:

>
> Hi JL and David,
>
> I was able to go forward. However, when I tried changing my  
> persistence
> provider to hibernate :
> <provider>org.hibernate.ejb.HibernatePersistence</provider>
>
> I get the following error:
> org.apache.openejb.OpenEJBException: Creating application failed:
> classpath.ear: javax/persistence/spi/ProviderUtil
>
> I was wondering : Where can I find that class? I assumed it should  
> be under
> JPA 2.0... but it is not...
>
> Is openEJB looking for some class provided in the latter version of  
> JPA?
>
> ERROR - Application could not be deployed:  classpath.ear
> org.apache.openejb.OpenEJBException: Creating application failed:
> classpath.ear: javax/persistence/spi/ProviderUtil
> 	at
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:666)
> 	at
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:449)
> 	at
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.buildContainerSystem(Assembler.java:367)
> 	at  
> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java: 
> 279)
> 	at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:137)
> 	at org.apache.openejb.OpenEJB.init(OpenEJB.java:286)
> 	at org.apache.openejb.OpenEJB.init(OpenEJB.java:265)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> 	at java.lang.reflect.Method.invoke(Unknown Source)
> 	at  
> org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java: 
> 36)
> 	at
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
> 	at
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
> 	at
> org 
> .apache 
> .openejb 
> .client 
> .LocalInitialContextFactory 
> .getInitialContext(LocalInitialContextFactory.java:42)
> 	at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
> 	at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
> 	at javax.naming.InitialContext.init(Unknown Source)
> 	at javax.naming.InitialContext.<init>(Unknown Source)
> 	at  
> com.desj.visa.app.cge.tests.CGEServiceTest.setUp(CGEServiceTest.java: 
> 34)
> 	at junit.framework.TestCase.runBare(TestCase.java:125)
> 	at junit.framework.TestResult$1.protect(TestResult.java:106)
> 	at junit.framework.TestResult.runProtected(TestResult.java:124)
> 	at junit.framework.TestResult.run(TestResult.java:109)
> 	at junit.framework.TestCase.run(TestCase.java:118)
> 	at junit.framework.TestSuite.runTest(TestSuite.java:208)
> 	at junit.framework.TestSuite.run(TestSuite.java:203)
> 	at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit 
> .runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
> 	at
> org 
> .eclipse 
> .jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
> 	at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
> 	at
> org 
> .eclipse 
> .jdt 
> .internal 
> .junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
> 	at
> org 
> .eclipse 
> .jdt 
> .internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
> 	at
> org 
> .eclipse 
> .jdt 
> .internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java: 
> 196)
> Caused by: java.lang.NoClassDefFoundError:
> javax/persistence/spi/ProviderUtil
> 	at java.lang.Class.getDeclaredConstructors0(Native Method)
> 	at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
> 	at java.lang.Class.getConstructor0(Unknown Source)
> 	at java.lang.Class.newInstance0(Unknown Source)
> 	at java.lang.Class.newInstance(Unknown Source)
> 	at
> org 
> .apache 
> .openejb 
> .assembler 
> .classic 
> .PersistenceBuilder 
> .createEntityManagerFactory(PersistenceBuilder.java:179)
> 	at
> org 
> .apache 
> .openejb 
> .assembler.classic.Assembler.createApplication(Assembler.java:489)
> 	... 32 more
> Caused by: java.lang.ClassNotFoundException:
> javax.persistence.spi.ProviderUtil
> 	at java.net.URLClassLoader$1.run(Unknown Source)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(Unknown Source)
> 	at java.lang.ClassLoader.loadClass(Unknown Source)
> 	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
> 	at java.lang.ClassLoader.loadClass(Unknown Source)
> 	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
> 	... 39 more
>
>
> -- 
> View this message in context: http://old.nabble.com/OutOfMemory-doing-a-JUnit-using-OpenEJB-Embedded-tp26289066p26326678.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
>
>


Mime
View raw message