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
