Hello, ObjectDB team!
I am struggling with getting ObjectDB 2.5.0 to work with clean Apache Tomee 1.5.2 with transaction-type="JTA". I don't have any configurations in Tomee (objectdb.jar is in Tomee's classpath) nor other parts, excepting the following persistence.xml:
<?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="N7PU1" transaction-type="JTA"> <provider>com.objectdb.jpa.Provider</provider> <exclude-unlisted-classes>false</exclude-unlisted-classes> <properties> <property name="javax.persistence.jdbc.url" value="$objectdb/n7/db1.odb"/> </properties> </persistence-unit> </persistence>
I get the following error at deployment time: Failed to use JTA
If I set transaction-type="resource-local", I can deploy, but not with JTA.
May 20, 2013 11:50:32 PM org.apache.tomee.catalina.TomcatWebAppBuilder startInternal SEVERE: Unable to deploy collapsed ear in war StandardEngine[Catalina].StandardHost[localhost].StandardContext[/natural7] org.apache.openejb.OpenEJBException: Creating application failed: C:\Users\Mircea\Documents\NetBeansProjects\natural7\target\natural7-1.0-SNAPSHOT: org.apache.openejb.OpenEJBRuntimeException: com.objectdb.o._PersistenceException: Failed to use JTA (TransactionManager is not found): com.objectdb.o._PersistenceException: Failed to use JTA (TransactionManager is not found) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:836) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:546) at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:1128) at org.apache.tomee.catalina.TomcatWebAppBuilder.configureStart(TomcatWebAppBuilder.java:1033) at org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:124) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5179) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:657) at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1637) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:722) Caused by: org.apache.openejb.OpenEJBException: org.apache.openejb.OpenEJBRuntimeException: com.objectdb.o._PersistenceException: Failed to use JTA (TransactionManager is not found): com.objectdb.o._PersistenceException: Failed to use JTA (TransactionManager is not found) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:690) ... 19 more Caused by: org.apache.openejb.OpenEJBRuntimeException: com.objectdb.o._PersistenceException: Failed to use JTA (TransactionManager is not found) at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createDelegate(ReloadableEntityManagerFactory.java:118) at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.<init>(ReloadableEntityManagerFactory.java:102) at org.apache.openejb.assembler.classic.PersistenceBuilder.createEntityManagerFactory(PersistenceBuilder.java:150) at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:684) ... 19 more Caused by: com.objectdb.o._PersistenceException: Failed to use JTA (TransactionManager is not found) at com.objectdb.o._PersistenceException.b(_PersistenceException.java:45) at com.objectdb.jpa.Provider.createContainerEntityManagerFactory(Provider.java:121) at com.objectdb.jpa.Provider.createContainerEntityManagerFactory(Provider.java:32) at org.apache.openejb.assembler.classic.EntityManagerFactoryCallable.call(EntityManagerFactoryCallable.java:55) at org.apache.openejb.assembler.classic.ReloadableEntityManagerFactory.createDelegate(ReloadableEntityManagerFactory.java:116) ... 22 more Caused by: com.objectdb.o.UserException: Failed to use JTA (TransactionManager is not found) at com.objectdb.o.MSG.d(MSG.java:74) at com.objectdb.jpa.EMF.initJta(EMF.java:169) at com.objectdb.jpa.EMF.init(EMF.java:91) at com.objectdb.jpa.Provider.newEMF(Provider.java:134) at com.objectdb.jpa.Provider.createContainerEntityManagerFactory(Provider.java:118) ... 25 more Caused by: javax.naming.NameNotFoundException: Name [comp/TransactionManager] is not bound in this Context. Unable to find [comp]. at org.apache.naming.NamingContext.lookup(NamingContext.java:820) at org.apache.naming.NamingContext.lookup(NamingContext.java:168) at org.apache.naming.SelectorContext.lookup(SelectorContext.java:158) at javax.naming.InitialContext.lookup(InitialContext.java:411) at com.objectdb.jpa.EMF.initJta(EMF.java:126) ... 28 more
Any hints please? Thanks a lot in advance.