@MorganDowell Это основная причина, по которой наша компания придерживается JPA 1.0, даже в новых приложениях - поскольку на наших серверах размещается много приложений, старых и новых, в то же время нам придется настраивать совершенно разные группы серверов только для приложений. использование JPA 2, что нецелесообразно по финансовым причинам.

хочу использовать встроенный плагин Websphere 7 jpa, вместо этого используйте приложение WEB-INF / lib / open-jpa 2 и проприетарный поставщик сохраняемости. Я не могу установить пакет функций OSGI и JPA 2 для Websphere.

Первоначально я получал ошибку синтаксического анализа, просто пытаясь загрузить файл persistence.xml (версия = "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, я получаю ту же ошибку)

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос