Hi,
I recently upgraded hibernate form 2.5 to 3.3.6 and spring from 1.2.8 to 2.5.
Previously we used jencks to be our Transaction manager. And all the transactions was taken care!
Spring file looks like this:
<bean id="jtaTransactionManager" class="org.jencks.factory.TransactionManagerFactoryBean"/>
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManager" ref="jtaTransactionManager"/> </bean>
<bean id="sessionFactory" name="sessionFactory, hibernateSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource" ref="defaultDataSource"/> <property name="jtaTransactionManager" ref="jtaTransactionManager"/> <property name="mappingResources" ref="fullHibernateMapping"/> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop> <prop key="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</prop> <prop key="hibernate.current_session_context_class">org.hibernate.context.JTASessionContext</prop> <prop key="hibernate.bytecode.use_reflection_optimizer">false</prop> <prop key="hibernate.transaction.auto_close_session">true</prop> <prop key="hibernate.transaction.flush_before_completion">true</prop> <prop key="jta.UserTransaction">java:comp/UserTransaction</prop> <prop key="hibernate.bytecode.use_reflection_optimizer">true</prop> </props> </property> </bean>
But now( after upgrade) I get the following exception:
Could not open Hibernate Session; nested exception is org.hibernate.TransactionException: Could not find UserTransaction in JNDI [java:comp/UserTransaction] org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:275) org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:104) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1245) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1010) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(Native Method) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:308) org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:947) org.springframework.context.support.AbstractApplicationContext.registerListeners(AbstractApplicationContext.java:701) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:377) com.transdyn.dynac.configuration.ExtendedClassPathXmlApplicationContext.init(ExtendedClassPathXmlApplicationContext.java:127) com.transdyn.dynac.configuration.ExtendedClassPathXmlApplicationContext.<init>(ExtendedClassPathXmlApplicationContext.java:65) com.transdyn.dynac.configuration.DynacConfigurableApplicationContextLoader.create(DynacConfigurableApplicationContextLoader.java:197) com.transdyn.dynac.configuration.DynacConfigurableApplicationContextLoader.create(DynacConfigurableApplicationContextLoader.java:141) com.transdyn.dynac.configuration.DynacConfigurableApplicationContextLoader.create(DynacConfigurableApplicationContextLoader.java:93) com.transdyn.dynac.context.ApplicationContextService.loadApplicationContext(ApplicationContextService.java:91) com.transdyn.dynac.context.ApplicationContextService.onStart(ApplicationContextService.java:60) com.transdyn.dynac.framework.service.AbstractService.start(AbstractService.java:111) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1414) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1375)
Any ideas of why this error shows up?
|