Is the UserTransaction object bound in your spring JNDI configuration file ?

On Mon, Mar 2, 2009 at 10:35, Andrea Zoppello <[email protected]> wrote:

> Hi,
>
> I've developed a custom servicemix-bean component that initialize a jbpm
> engine.
>
> The engine use hibernate and i want to configure the hibernate.cf.xml file
> to be able to use JTA Transactions.
>
> The hibernate.cfg.xml file looks like:
>
> <hibernate-configuration>
> <session-factory>
>
>   <!-- hibernate dialect -->
>    <property
> name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
>    <property
> name="hibernate.connection.datasource">java:comp/env/jdbc/jbpm</property>
>    <property
> name="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.GeronimoTransactionManagerLookup</property>
>
>    <property
> name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property>
>    <property name="hibernate.query.substitutions">true 1, false
> 0</property>
>    <property
> name="jta.UserTransaction">java:comp/UserTransaction</property>
> .....
>
> And i've declared te jbpm datasource as:
>
> <entry key="java:comp/env/jdbc/jbpm">
>       <bean id="jbpm-ds"
>             class="org.apache.commons.dbcp.managed.BasicManagedDataSource"
>             destroy-method="close">
>             <property name="driverClassName"
> value="com.mysql.jdbc.Driver"/>
>             <property name="url" value="jdbc:mysql://localhost:3306/jbpm"/>
>                       <property name="username" value="jbpm"/>
>             <property name="password" value="jbpm"/>
>             <property name="defaultCatalog" value="jbpm"/>
>             <property name="transactionManager" ref="transactionManager"/>
>             <property name="XADataSource"
> value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>
>
>       </bean>
>     </entry>
>
> Within this configuration the XADatsource to mysql database seems to be
> configured directly but i've a fault gettin the user transaction. The
> exception is:
>
> ERROR - JTATransaction                 - Could not find UserTransaction in
> JNDI
> javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> ERROR - JobExecutorThread              - exception in job executor thread.
> waiting 5000 milliseconds
>
> org.hibernate.TransactionException: Could not find UserTransaction in JNDI:
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> Caused by: javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       ... 10 more
> ERROR - JTATransaction                 - Could not find UserTransaction in
> JNDI
> javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> ERROR - JobExecutorThread              - exception in job executor thread.
> waiting 10000 millisecond
> s
> org.hibernate.TransactionException: Could not find UserTransaction in JNDI:
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> Caused by: javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       ... 10 more
> ERROR - JTATransaction                 - Could not find UserTransaction in
> JNDI
> javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> ERROR - JobExecutorThread              - exception in job executor thread.
> waiting 20000 millisecond
> s
> org.hibernate.TransactionException: Could not find UserTransaction in JNDI:
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> Caused by: javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       ... 10 more
> ERROR - JTATransaction                 - Could not find UserTransaction in
> JNDI
> javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> ERROR - JobExecutorThread              - exception in job executor thread.
> waiting 40000 millisecond
> s
> org.hibernate.TransactionException: Could not find UserTransaction in JNDI:
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:64)
>       at
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.j
> ava:57)
>       at
> org.hibernate.jdbc.JDBCContext.getTransaction(JDBCContext.java:193)
>       at
> org.hibernate.impl.SessionImpl.getTransaction(SessionImpl.java:1315)
>       at
> org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1325)
>       at
> org.jbpm.persistence.db.DbPersistenceService.beginTransaction(DbPersistenceService.java:1
> 32)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getSession(DbPersistenceService.java:124)
>       at
> org.jbpm.persistence.db.DbPersistenceService.getJobSession(DbPersistenceService.java:369)
>
>       at org.jbpm.JbpmContext.getJobSession(JbpmContext.java:630)
>       at
> org.jbpm.job.executor.JobExecutorThread.acquireJobs(JobExecutorThread.java:106)
>       at
> org.jbpm.job.executor.JobExecutorThread.run(JobExecutorThread.java:54)
> Caused by: javax.naming.NamingException: scheme java not recognized
>       at
> org.apache.xbean.spring.jndi.DefaultContext.lookup(DefaultContext.java:131)
>       at javax.naming.InitialContext.lookup(InitialContext.java:351)
>       at
> org.hibernate.transaction.JTATransaction.<init>(JTATransaction.java:60)
>       ... 10 more
>
> Any idea???
>



-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/
------------------------
Open Source SOA
http://fusesource.com

Reply via email to