[
https://issues.apache.org/jira/browse/ODE-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15055445#comment-15055445
]
Sathwik Bantwal Premakumar commented on ODE-1045:
-------------------------------------------------
Seems like Hibernate expects the transaction manager to be registered in the
JNDI for JTA.
There are two options:
1) Extend Hibernate class JTATransactionFactory and override the lookup method
for UserTransaction.
2) Embed a tomcat with preconfigured Transaction Manager within ODE
distribution.
I would prefer option 2)
This approach gives ODE users the ability to use ODE without any hassles in the
initial stage of their adoption. Almost zero configuration needed for using ODE
with embedded database mode. Just by starting the embedded server, ODE is up
and running. The onus will be on the ODE developers to provide a clean
deployment with embedded tomcat and facilitate user adoption hassle free.
> Problem starting ODE 1.3.7 SNAPSHOT with Embedded database mode using
> Hibernate
> -------------------------------------------------------------------------------
>
> Key: ODE-1045
> URL: https://issues.apache.org/jira/browse/ODE-1045
> Project: ODE
> Issue Type: Bug
> Components: Deployment
> Reporter: Sathwik Bantwal Premakumar
> Assignee: Sathwik Bantwal Premakumar
> Fix For: 1.3.7
>
>
> SEVERE: StandardWrapper.Throwable
> org.apache.ode.bpel.iapi.ContextException: DbError
> at org.apache.ode.store.ProcessStoreImpl.exec(ProcessStoreImpl.java:657)
> at
> org.apache.ode.store.ProcessStoreImpl.loadAll(ProcessStoreImpl.java:551)
> at org.apache.ode.axis2.ODEServer.init(ODEServer.java:197)
> at org.apache.ode.axis2.ODEServer.init(ODEServer.java:137)
> at
> org.apache.ode.axis2.hooks.ODEAxisServlet.init(ODEAxisServlet.java:53)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
> at
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
> at
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)
> at
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)
> at
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802)
> at
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
> at
> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1080)
> at
> org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1003)
> at
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507)
> at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
> at
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325)
> at
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068)
> at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
> at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
> at
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
> at
> org.apache.catalina.core.StandardService.start(StandardService.java:525)
> at
> org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
> at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:606)
> at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
> at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
> Caused by: java.util.concurrent.ExecutionException:
> org.hibernate.TransactionException: Could not find UserTransaction in JNDI
> [java:comp/UserTransaction]
> at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> at java.util.concurrent.FutureTask.get(FutureTask.java:188)
> at org.apache.ode.store.ProcessStoreImpl.exec(ProcessStoreImpl.java:655)
> ... 30 more
> Caused by: org.hibernate.TransactionException: Could not find UserTransaction
> in JNDI [java:comp/UserTransaction]
> at
> org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:173)
> at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.java:149)
> at
> org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:195)
> at org.hibernate.jdbc.JDBCContext.<init>(JDBCContext.java:99)
> at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:241)
> at
> org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:605)
> at
> org.hibernate.context.JTASessionContext.buildOrObtainSession(JTASessionContext.java:152)
> at
> org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:111)
> at
> org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
> at
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:100)
> at
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:45)
> at
> org.apache.ode.store.ProcessStoreImpl.getConnection(ProcessStoreImpl.java:662)
> at
> org.apache.ode.store.ProcessStoreImpl.access$500(ProcessStoreImpl.java:67)
> at
> org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:829)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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:745)
> Caused by: javax.naming.NamingException: Cannot create resource instance
> at
> org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
> at
> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
> at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
> at javax.naming.InitialContext.lookup(InitialContext.java:411)
> at
> org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:163)
> ... 17 more
> Dec 11, 2015 2:32:57 PM org.apache.catalina.core.StandardContext loadOnStartup
> SEVERE: Servlet /ode threw load() exception
> javax.naming.NamingException: Cannot create resource instance
> at
> org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
> at
> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
> at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
> at javax.naming.InitialContext.lookup(InitialContext.java:411)
> at
> org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:163)
> at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.java:149)
> at
> org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:195)
> at org.hibernate.jdbc.JDBCContext.<init>(JDBCContext.java:99)
> at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:241)
> at
> org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:605)
> at
> org.hibernate.context.JTASessionContext.buildOrObtainSession(JTASessionContext.java:152)
> at
> org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:111)
> at
> org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
> at
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:100)
> at
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:45)
> at
> org.apache.ode.store.ProcessStoreImpl.getConnection(ProcessStoreImpl.java:662)
> at
> org.apache.ode.store.ProcessStoreImpl.access$500(ProcessStoreImpl.java:67)
> at
> org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:829)
> at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> 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:745)
> Dec 11, 2015 2:45:03 PM org.apache.catalina.core.ApplicationContext log
> INFO: SessionListener: contextDestroyed()
> Dec 11, 2015 2:45:03 PM org.apache.catalina.core.ApplicationContext log
> INFO: ContextListener: contextDestroyed()
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)