Я работаю над проектом maven, который использует шов 2.2.0, спящий режим 3.5.0-CR-2 в качестве поставщика JPA, DB2 в качестве сервера базы данных и Websphere 7 в качестве сервера приложений. Теперь я столкнулся со следующей проблемой:
- В моих EJB, которые также видны как компоненты SEAM, я хочу использовать EntityManager из контейнера EJB (@PersistenceContext private EntityManager em), а не EntityManager Seam (@In private EntityManager em). Но в этом проблема, я не могу получить EntityManager с помощью @PersistenceContext.
В журналах сервера говорится, что он не может создать EntityManagerFactory и получает ClassCastException:
java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence несовместим с javax.persistence.spi.PersistenceProvider
После долгих отладок и поиска на форумах я предполагаю, что проблема в том, что Websphere не использует поставщика Hibernate JPA.
Кто-нибудь сталкивался с этой проблемой и имеет решение? Я уже настроил порядок загрузчика классов WAS для своего приложения, чтобы сначала загружать классы с помощью загрузчика классов приложения, и я упаковал все необходимые файлы jar в ухо приложения, как написано в: Информационный центр WAS: функции для EJB 3.0 разработка. При необходимости я опубликую свои файлы persistence.xml, component.xml и трассировку стека.
Я нашел, что эта проблема обсуждалась также здесь:
- Проблема создания Websphere EntityManagerFactory
- Hibernate 3.3 не удается создать Фабрика диспетчера сущностей в Websphere 7.0. Пожалуйста, помогите
Любая подсказка будет полезна.
Заранее спасибо!
Михаэла