带有Hibernate的WebSphere可嵌入EJB容器抛出java.lang.ClassNotFoundException:com.ibm.WebSphere.jtaextensions.SynchronizationCallback

带有Hibernate的WebSphere可嵌入EJB容器抛出java.lang.ClassNotFoundException:com.ibm.WebSphere.jtaextensions.SynchronizationCallback,hibernate,jakarta-ee,websphere,junit4,ejb-3.1,Hibernate,Jakarta Ee,Websphere,Junit4,Ejb 3.1,我正在使用WebSphere8的可嵌入EJB容器为使用JUnit4的EJB编写一些单元测试。我在MyEclipse中有一个简单的java项目,其中我引用了EJB项目。EJB项目使用Hibernate 3.5进行持久化,Hibernate.cfg.xml中的数据源JNDI是jdbc/connectionname,它在可嵌入容器的属性中定义 可嵌入容器成功启动,EJB成功找到,数据源也成功找到。但是,在EJB方法的任何第一次方法调用中,以下异常为thown: org.hibernate.Hibern

我正在使用WebSphere8的可嵌入EJB容器为使用JUnit4的EJB编写一些单元测试。我在MyEclipse中有一个简单的java项目,其中我引用了EJB项目。EJB项目使用Hibernate 3.5进行持久化,Hibernate.cfg.xml中的数据源JNDI是jdbc/connectionname,它在可嵌入容器的属性中定义

可嵌入容器成功启动,EJB成功找到,数据源也成功找到。但是,在EJB方法的任何第一次方法调用中,以下异常为thown:

org.hibernate.HibernateException: java.lang.ClassNotFoundException: com.ibm.websphere.jtaextensions.SynchronizationCallback
at org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$TransactionManagerAdapter.<init>(WebSphereExtendedJTATransactionLookup.java:108)
at org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$TransactionManagerAdapter.<init>(WebSphereExtendedJTATransactionLookup.java:88)
at org.hibernate.transaction.WebSphereExtendedJTATransactionLookup.getTransactionManager(WebSphereExtendedJTATransactionLookup.java:70)
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:367)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
org.hibernate.hibernateeexception:java.lang.ClassNotFoundException:com.ibm.websphere.jtaextensions.SynchronizationCallback
位于org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$TransactionManagerAdapter。(WebSphereExtendedJTATransactionLookup.java:108)
位于org.hibernate.transaction.WebSphereExtendedJTATransactionLookup$TransactionManagerAdapter。(WebSphereExtendedJTATransactionLookup.java:88)
位于org.hibernate.transaction.WebSphereExtendedJTATransactionLookup.getTransactionManager(WebSphereExtendedJTATransactionLookup.java:70)
位于org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:367)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
位于org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)

任何建议都将不胜感激。

WebSphere Application Server中的嵌入式EJB容器不支持ExtendedJTATransaction,但它支持java:comp/TransactionSynchronizationRegistry。我不熟悉Hibernate,但似乎应该更新它,以便在可用时使用TransactionSynchronizationRegistry