[jboss-user] [JBossCache] - Problem registering JTA with Hibernate (JBossCache)
Pragmaticus
do-not-reply at jboss.com
Tue Jul 11 17:20:00 EDT 2006
Hi,
I have a configuration using TreeCache + Hibernate + Spring. I it almost working but I am not able to get the cache work with JBoss JTA. The problem seems to be that the I am not able to locate the JBoss TransactionManager when I deploy. Maybe this is not the right place to this post but I believe the problem must somehow be related to how I configure JBoss JTA and lookup of the JTA jndi resource. Any help would be appreciated.
The configuration file in Spring...
<!-- Reference to the MySqlDS defined in JBoss -->
| <bean id="mySqlDS" class="org.springframework.jndi.JndiObjectFactoryBean">
| <property name="jndiName" value="MySqlDS"/>
| </bean>
|
| <!-- Hibernate configuration -->
| <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
| <property name="dataSource" ref="mySqlDS"/>
| <property name="schemaUpdate" value="true"/>
| <property name="mappingResources">
| <list>
| <value>hibernate/userdomain.hbm.xml</value>
| <value>hibernate/systemdomain.hbm.xml</value>
| </list>
| </property>
| <property name="hibernateProperties">
| <props>
| <prop key="hibernate.dialect">${xtrade.hibernate.dialect}</prop>
| <prop key="hibernate.showsql">${xtrade.hibernate.showsql}</prop>
| <!-- <prop key="hibernate.hbm2ddl.auto">${xtrade.hibernate.hbm2ddl.auto}</prop> -->
| <prop key="hibernate.cache.provider_class">${xtrade.hibernate.cache.provider}</prop>
| <prop key="hibernate.cache.use_query_cache">true</prop>
| <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop>
| <prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</prop>
| </props>
| </property>
| <!-- <property name="jtaTransactionManager" ref="jbossTxManager"/> -->
| </bean>
|
|
I have bundled the treecache.xml with the deployed JAR-file and I works ok when deployed outside JBoss (but without JTA).
| <!-- ==================================================================== -->
| <!-- Defines TreeCache configuration -->
| <!-- ==================================================================== -->
| <mbean code="org.jboss.cache.TreeCache" name="jboss.cache:service=TreeCache">
| <depends>jboss:service-Naming</depends>
| <depends>jboss:service-TransactionManager</depends>
| <attribute name="ClusterName">xtradeCluster</attribute>
| <attribute name="CacheMode">REPL_ASYNC</attribute>
| <attribute name="LockAcquisitionTimeout">15000</attribute>
| <attribute name="FetchStateOnStarup">true</attribute>
| ....
|
And here is the exception..
| 22:50:15,233 INFO [STDOUT] 22:50:15,231 ERROR [[/xtrade-web]] Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
| org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [dao-config.xml]: Invocation of init method failed; nested exception is org.hibernate.cache.CacheException: org.hibernate.HibernateException: Could not locate TransactionManager
| Caused by:
| org.hibernate.cache.CacheException: org.hibernate.HibernateException: Could not locate TransactionManager
| at org.hibernate.cache.TreeCacheProvider.start(TreeCacheProvider.java:58)
| at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:169)
| at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
| at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:871)
| ...
| Caused by: org.hibernate.HibernateException: Could not locate TransactionManager
| at org.hibernate.transaction.JNDITransactionManagerLookup.getTransactionManager(JNDITransactionManagerLookup.java:26)
| at org.hibernate.cache.TreeCacheProvider.start(TreeCacheProvider.java:53)
| ... 152 more
| Caused by: javax.naming.NameNotFoundException: TransactionManager not bound
| at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
|
|
I would really love to see a code example with a working configuration for how to setup TreeCache + Hibernate + Spring.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957154#3957154
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957154
More information about the jboss-user
mailing list