Встраиваемый EJB-контейнер WebSphere с Hibernate создает исключение java.lang.ClassNotFoundException: com.ibm.websphere.jtaextensions.SynchronizationCallback - PullRequest
0 голосов
/ 19 марта 2012

Я использую встраиваемый EJB-контейнер WebSphere 8 для написания некоторых модульных тестов для моих EJB-компонентов с JUnit4.У меня есть простой проект Java в MyEclipse, где я ссылаюсь на проект EJB.Проект EJB использует Hibernate 3.5 для персистентности, а JNDI источника данных в hibernate.cfg.xml - это 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)

Любой совет приветствуется.

1 Ответ

1 голос
/ 20 марта 2012

Встраиваемый контейнер EJB в WebSphere Application Server не поддерживает ExtendedJTATransaction, но поддерживает java: comp / TransactionSynchronizationRegistry. Я не знаком с Hibernate, но может показаться, что его следует обновить, чтобы использовать TransactionSynchronizationRegistry, когда он будет доступен.

...