Я работаю над проектом maven, который использует шов 2.2.0, hibernate 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 для своего приложения, чтобы сначала загрузить классы с помощью загрузчика классов приложения, и я упаковал все необходимые фляги в ухо приложения, как написано в: WAS InfoCenter: функции для разработки EJB 3.0 . При необходимости я опубликую свои файлы persistence.xml, component.xml и трассировку стека.
Я обнаружил, что эта проблема обсуждалась и здесь:
Любая подсказка будет полезна.
Заранее спасибо!
Михаэла