2012-03-19 10 views
0

私は、WebSphere 8の組み込み可能なEJBコンテナを使用してJUnit4でEJBの単体テストを記述しています。 MyEclipseには、EJBプロジェクトを参照する簡単なJavaプロジェクトがあります。 EJBプロジェクトは永続性のためにHibernate 3.5を使用し、hibernate.cfg.xmlのデータソースJNDIは埋め込み可能コンテナのプロパティで定義されるjdbc/connectionnameです。Hibernateを使用したWebSphere埋め込み可能なEJBコンテナjava.lang.ClassNotFoundException:com.ibm.websphere.jtaextensions.SynchronizationCallback

埋め込み可能なコンテナが正常に起動すると、EJBが正常に検出され、データソースも正常に検出されます。しかし、EJBメソッドのいずれかの最初のメソッド呼び出しにfollowin例外が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) 

何かアドバイスをいただければ幸いです。

答えて

1

WebSphere Application Serverの組み込み可能なEJBコンテナは、ExtendedJTATransactionをサポートしていませんが、java:comp/TransactionSynchronizationRegistryをサポートしています。私はHibernateに慣れていませんが、TransactionSynchronizationRegistryを使用できるように更新する必要があるようです。

関連する問題