2015-07-21 77 views
0

我们有一个使用Hibernate 3.1.3的漂亮的旧应用程序。我们正在升级到Hibernate 3.2.7(我知道它仍然是旧版本的hibernate,最终我们打算迁移到4.x版)。 我得到这个exception.We都在使用我们的自定义“manager_lookup_class”,呼吁在Transactionmanagerfactory得到事务管理Websphere 8.5和Hibernate 3.2.7用户TransactionManager错误

used by: org.hibernate.TransactionException: Could not find UserTransaction in JNDI [java:comp/UserTransaction] 
at org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:172) 
at org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.java:148) 
at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:172) 
at org.hibernate.jdbc.JDBCContext.<init>(JDBCContext.java:76) 
at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:214) 
at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:574) 
at org.hibernate.context.JTASessionContext.buildOrObtainSession(JTASessionContext.java:114) 
at org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:80) 
at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:591) 
at com.dataaccess.utility.hibernate.impl.SessionManagerImpl.getSession(SessionManagerImpl.java:319) 
at com.dataaccess.handler.hibernate.impl.HandlerAdapter.getSession(HandlerAdapter.java:83) 
at com.dataaccess.handler.hibernate.impl.BatchProcessingHandlerImpl.flush(BatchProcessingHandlerImpl.java:344) 
at com.dataaccess.handler.hibernate.impl.BatchProcessingHandlerImpl.batchDelete(BatchProcessingHandlerImpl.java:406) 
... 34 more 


    Caused by: javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:". 
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1229) 
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1142) 
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436) 
at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477) 
at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485) 
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370) 
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161) 
at javax.naming.InitialContext.lookup(InitialContext.java:436) 
at org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:162) 
... 46 more 

回答

0

我觉得异常不言自明:

Caused by: javax.naming.NameNotFoundException: Name "comp/UserTransaction" not found in context "java:". 

您正在执行jndi查找,并且该资源不存在,至少不会以该名称存在。仔细检查你的配置,确保你正在寻找的东西在你使用的名字下注册在jndi上下文中。

+0

感谢您的回答。当我试图将HIbernate 3.1.3升级到3.2时,此问题即将到来。在与hibernate 3.1.3相同的服务器环境中,它工作正常。奇怪的是我拿了一个dumpNamespace,并且“comp/UserTransaction”在两种情况下都不存在。寻找更多的建议。再次感谢 – Maverick

相关问题