簡體   English   中英

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

[英]WebSphere embeddable EJB container with Hibernate throws java.lang.ClassNotFoundException: com.ibm.websphere.jtaextensions.SynchronizationCallback

我正在使用WebSphere 8的可嵌入EJB容器使用JUnit4為我的EJB編寫一些單元測試。 我在MyEclipse中有一個簡單的Java項目,其中引用了EJB項目。 EJB項目使用Hibernate 3.5進行持久化,並且hibernate.cfg.xml中的數據源JNDI是jdbc / connectionname,它在可嵌入容器的屬性中定義。

可嵌入容器成功啟動,可以成功找到EJB,並且也成功找到了數據源。 但是,在EJB方法的任何第一個方法調用上,都會引發以下跟隨異常:

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)

任何意見,將不勝感激。

WebSphere Application Server中的可嵌入EJB容器不支持ExtendedJTATransaction,但它確實支持java:comp / TransactionSynchronizationRegistry。 我不熟悉Hibernate,但似乎應該對其進行更新以在可用時使用TransactionSynchronizationRegistry。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM