I am porting my application AtLeap (
https://atleap.dev.java.net) from Hibernate 2.1.8 and Spring 1.1.5 to Hibernate 3.0.5 and Spring 1.2.5.
AtLeap was working correctly under IBM WebSphere 6 AS with following settings:
Code:
<property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.JTATransactionFactory"/>
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereTransactionManagerLookup"/>
However when I have ported AtLeap into Hibernate 3.0.5 and Spring 1.2.5 I have the following error:
Code:
[05.10.05 22:12:06:531 GEST] 00000058 Helpers W NMSV0605W: A Reference object looked up from the context
"agrebnevNode01Cell/nodes/agrebnevNode01/servers/server1" with the name "jta/usertransaction" was sent to the JND
I Naming Manager and an exception resulted. Reference data follows:
Reference Factory Class Name: com.ibm.ws.Transaction.JTA.UtxJNDIFactory
Reference Factory Class Location URLs: <null>
Reference Class Name: java.lang.Object
Exception data follows:
javax.naming.ConfigurationException
at com.ibm.ws.Transaction.JTA.UtxJNDIFactory.getObjectInstance(UtxJNDIFactory.java:107)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:314)
at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:874)
at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookup(Helpers.java:681)
at com.ibm.ws.naming.jndicos.CNContextImpl.cacheLookup(CNContextImpl.java:3489)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1755)
at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1737)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1444)
at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1324)
at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:144)
at javax.naming.InitialContext.lookup(InitialContext.java:361)
at org.hibernate.transaction.JTATransaction.begin(JTATransaction.java:58)
at org.hibernate.transaction.JTATransactionFactory.beginTransaction(JTATransactionFactory.java:53)
at org.hibernate.jdbc.JDBCContext.beginTransaction(JDBCContext.java:271)
at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1079)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:42
6)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatform
TransactionManager.java:281)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(Transact
ionAspectSupport.java:217)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:144)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:174)
at $Proxy72.findContentPageByUri(Unknown Source)
When I try to set
Code:
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"/>
I have the following error:
Code:
[05.10.05 20:55:28:203 GEST] 00000030 SystemErr R org.springframework.dao.DataAccessResourceFailureExceptio
n: Could not register synchronization with JTA TransactionManager; nested exception is java.lang.UnsupportedOpera
tionException: null
java.lang.UnsupportedOperationException
at org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$TransactionManagerAdapter.getStatus(WebSph
ereExtendedJTATransactionLookup.java:76)
at org.springframework.orm.hibernate3.SessionFactoryUtils.registerJtaSynchronization(SessionFactoryUtils.java
:459)
at org.springframework.orm.hibernate3.SessionFactoryUtils.doGetSession(SessionFactoryUtils.java:356)
at org.springframework.orm.hibernate3.SessionFactoryUtils.getSession(SessionFactoryUtils.java:195)
at com.blandware.atleap.webapp.listener.StartupListener.getSession(StartupListener.java:753)
at com.blandware.atleap.webapp.listener.StartupListener.contextInitialized(StartupListener.java:207)
at com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:1355)
at com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:371)
at com.ibm.ws.webcontainer.webapp.WebGroup.addWebApplication(WebGroup.java:114)
at com.ibm.ws.webcontainer.VirtualHost.addWebApplication(VirtualHost.java:127)
at com.ibm.ws.webcontainer.WebContainer.addWebApp(WebContainer.java:776)
at com.ibm.ws.webcontainer.WebContainer.addWebApplication(WebContainer.java:729)
at com.ibm.ws.runtime.component.WebContainerImpl.install(WebContainerImpl.java:140)
at com.ibm.ws.runtime.component.WebContainerImpl.start(WebContainerImpl.java:360)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1019)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:
1028)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:538)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:724)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:683)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1161)
Any ideas?
What was changed in Hibernate 3?
Thanks beforehand.
Andrey Grebnev
http://www.jroller.com/page/agrebnev