Я не хочу использовать встроенный плагин Websphere 7 jpa, вместо этого используйте приложение WEB-INF / lib / open-jpa 2 и проприетарный поставщик сохраняемости. Я не могу установить пакет функций OSGI и JPA 2 для Websphere.
Первоначально я получал ошибку синтаксического анализа, просто пытаясь загрузить файл persistence.xml (version = "2" не поддерживается). Ошибка была сгенерирована классом в open-jpa 1.2.3. Когда я запускаю websphere / appserver / bin / wsjpaversion.bat, отображается jar open-jpa 1.2.3. По умолчанию он переопределяет jar-файл open-jpa 2 в приложении. Я создал разделяемую библиотеку, содержащую jar open-jpa 2, с опцией этой конфигурации: «Использовать изолированный загрузчик классов для этой разделяемой библиотеки». Я установил свой загрузчик классов приложения для последней загрузки родителя и назначил ему новый ресурс общей библиотеки. Ошибка версии 2 исчезла, но есть другая проблема. Когда я пытаюсь инициализировать EntityManager, я получаю сообщение об ошибке:
Caused by: javax.persistence.PersistenceException: Failed to load provider from META-INF/services
at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:91)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
... 2 more
Caused by: java.lang.ClassCastException: com.ibm.websphere.persistence.PersistenceProviderImpl incompatible with javax.persistence.spi.PersistenceProvider
at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:110)
... 11 more
Еще одна деталь: внутри файла persistence.xml для элемента provider установлено проприетарное значение PersistenceProviderImpl, а не поставщик постоянных данных Websphere по умолчанию. Итак, откуда взялся этот дефолт веб-сферы и как его предотвратить? (еще одно важное замечание: когда я полностью удаляю persistence.xml, я получаю ту же ошибку )
Спасибо