2017-02-22 71 views
0

Я использую EclipseLink в качестве реализации JPA. При развертывании в Wildfly.10.1.0.Final я всегда получаю ошибку No Persistence provider for EntityManager named <the persistence unit name>. Я следовал шаг ссылкам:Конфигурация EclipseLink в Wildfly.10.1.0.Final, не отражающая PersistenceProvider

  1. https://docs.jboss.org/author/display/WFLY10/JPA+Reference+Guide#JPAReferenceGuide-UsingEclipseLink

  2. https://developer.jboss.org/thread/273134

Шаги и module.xml точно соответствует mine.In standalone.xml Я включил систему как указано в первой ссылке, упомянутой выше

Я включил журнал отслеживания и обнаружил, что нижеследующее: [org.hibernate.jpa.HibernatePersistenceProvider] (по умолчанию задача-4) Исключение из рассмотрения в связи с именем неправильного матчем

Стойкостью Provider: org.eclipse.persistence.jpa.PersistenceProvider JDK Версия: 1,8

Запрос, если кто-то может пролить свет, когда я ошибаюсь.

Добавлен след, как

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named AAAAA_BBBB 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61) 
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39) 

Другие след Рассогласуйте

2017-02-23 17:47:09,276 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (default task-55) Checking persistence-unit [name=AAAAA_BBBB, explicit-provider=org.eclipse.persistence.jpa.PersistenceProvider] against incoming persistence unit name [AAAAA_BBBB] 
2017-02-23 17:47:09,276 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (default task-56) Checking persistence-unit [name=AAAAA_BBBB, explicit-provider=org.eclipse.persistence.jpa.PersistenceProvider] against incoming persistence unit name [AAAAA_BBBB] 
2017-02-23 17:47:09,277 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (default task-56) Excluding from consideration due to name mis-match 

Дополнительные Следы

2017-02-24 05: 32: 49031 TRACE [org.hibernate.jpa. boot.spi.ProviderChecker] (задание по умолчанию-7) Проверка запрашиваемого имени PersistenceProvider [org.eclipse.persistence.jpa.PersistenceProvider] против имен провайдера Hibernate 2017-02-24 05: 32: 49,031 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (задание по умолчанию-11) Исключение из рассмотрения из-за несоответствия провайдера 2017-02-24 05: 32: 49,031 TRACE [org.hibernate.jpa.boot.spi .ProviderChecker] (по умолчанию задача-7) не найдено ни одного совпадения против Hibernate имен провайдера

persistence.xml

<persistence-unit name="AAA_BBB" transaction-type="JTA"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>  
     <jta-data-source>java:/<jndi-Name in standalone</jta-data-source> 
     <class>...</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
      <property name="javax.persistence.jdbc.url" value="<url>"/> 
      <property name="javax.persistence.jdbc.user" value="<username>"/> 
      <property name="javax.persistence.jdbc.password" value="<pwd>"/> 
     </properties> 
    </persistence-unit> 
    <persistence-unit name="CCC_DDD" transaction-type="RESOURCE_LOCAL"> 
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>  
     <jta-data-source>java:/<jndi-Name in standalone</jta-data-source>  
     <class>...</class> 
     <properties> 
      <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> 
      <property name="javax.persistence.jdbc.url" value="<url>"/> 
      <property name="javax.persistence.jdbc.user" value="<username>"/> 
      <property name="javax.persistence.jdbc.password" value="<pwd>"/> 
     </properties> 
    </persistence-unit> 
+0

Где вы получаете исключение «Нет провайдера устойчивости для EntityManager named ...»? Возможно, вы можете включить часть трассировки стека. –

+0

Спасибо за ваш ответ. Я добавил трассировку стека в самом Вопросе. Чтобы быть более точным, моя entityJar находится в директории режимов Wildfly10.1.0Final. Он содержит dpendency в module.xml, а также org.eclipse.persistence упоминается в MANIFEST.MF объектаJars –

+0

Я использую EclipseLink 2.6.4 и Java 1.8. В TOMCAT он работал нормально. Может быть, это проблема, потому что я вижу, что EclipseLink 2.6.x требует Java 7, но нет никаких следов как таковых. Версия minium requried - это Java 1.7, поэтому я ожидаю, что она будет работать также с JDK1.8. –

ответ

0

был, наконец, удалось решить эту проблему в немного странным образом (возможно)

Шаг 1: создайте каталог модуля под именем (com.abc.persistence: main) Шаг 2 скопировал все связанные банки ecl ipselink и jipijapa в тот же модуль и передал его.

Шаг 2. Удалены системное свойство "eclipselink.archive.factory"

Он работает в чистоте.

То, что я проанализировал, было, если одно из свойств системы было поставлено, тогда другие, такие как целевой сервер, никогда не добавляются в карту свойств (я где-то проверил код). Как только я удалился, я думаю, что все остальные также добавляются, и, следовательно, это работает, потому что я буду немного удивлен, если создание вышеуказанного каталога в модуле (шаг 1 выше) заставило его работать.

+1

Пожалуйста, что именно вы имели в виду под термином «и передали его»? Как именно вы это сделали? Можете ли вы отредактировать свой ответ с подробной информацией о своей рабочей конфигурации? Заранее спасибо. –

+1

Привет @SayoOladeji, Извините за ответ. К первому пункту вашего вопроса «и отсылайте его» означало, что я ссылался на него из module.xml. В файле standalone.xml я удалил системное свойство "eclipselink.archive.factory" –