tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Quintin Beukes <quin...@skywalk.co.za>
Subject Re: OutOfMemory doing a JUnit using OpenEJB Embedded
Date Sat, 14 Nov 2009 09:05:14 GMT
Are you trying to use a different mode or version of Hibernate than
the standard or something? Unless I missed something which is causing
this, you should be able to run standard hibernate by adding the
following to your persistence.xml and then using the standard
hibernate-core/annotations/entitymanager and openejb libs to your
classpath.

    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
      <property name="hibernate.transaction.manager_lookup_class"
value="org.apache.openejb.hibernate.TransactionManagerLookup"/>
    </properties>

I've never seen the error you mentioned, and I'm getting all these
deps from official maven repositories for each, so I know I'm not
throwing anything non-standard in there.

Quintin Beukes



On Fri, Nov 13, 2009 at 1:35 AM, David Blevins <david.blevins@visi.com> wrote:
> 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