У меня проблема с JBoss 7.02. Финал.Я портирую проект из JBoss5.1GA и (за исключением значительного количества переписываний в поисках поддержки EE6) у меня возникла проблема при регистрации Eclipselink на пути к классам.Я искал вокруг, и я вижу несколько сообщений о том, что эта проблема исправлена, но я не могу найти работающий пример.
Существует очень высокая вероятность того, что я делаю что-то не так, поскольку я новичок вРазработка EE6.
Ухо построено следующим образом
- ProductionEE6
./lib/eclipselink2.*.jar
./lib/javax.persistence.jar
. . .
ProductionEJB.jar
. . .
Production.war
Мой файл persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_2_0.xsd">
<persistence-unit name="production" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<non-jta-data-source>java:/ProductionDS</non-jta-data-source>
<class><!-- entities --></class>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="eclipselink.target-server" value="JBoss"/>
<!-- A few other properties here -->
</properties>
</persistence-unit>
</persistence>
Все загружается нормально, я вижу источники данных, я прохожу безопасность (через пользовательский модуль DatabaseModule, поэтому мои источники данных, безусловно, в порядке), и когда я наконец звоню в EJB, я вижу следующие ошибки:
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named production
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) [hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1.Final]
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) [hibernate-jpa-2.0-api-1.0.1.Final.jar:1.0.1.Final]
at com.danielbchapman.production.entity.DelegateInstance.getEm(DelegateInstance.java:67) [ProductionEJB.jar:]
at com.danielbchapman.production.entity.EntityInstance.getEm(EntityInstance.java:39) [ProductionEJB.jar:]
at com.danielbchapman.production.beans.OptionsDao.<init>(OptionsDao.java:20) [ProductionEJB.jar:]
... 94 more
В связи с этим я не использую источник данных JTA, поэтому обрабатывал транзакции вручную.Этот вызов - это «DelegateInstance» выше со следующим кодом: (где persistenceUnitId в данном случае «production»).
/**
* @return an instance of the entity manager if it isn't there.
*/
public EntityManager getEm()
{
if(manager == null)
{
manager = Persistence.createEntityManagerFactory(getPersistenceUnitId())
.createEntityManager();
}
return manager;
}
Что меня больше всего беспокоит, так это видение настек: [hibernate-jpa-2.0-api-1.0.1.Final.jar: 1.0.1.Final] Очевидно, я не загружаю EclipseLink должным образом.У меня заканчиваются идеи, поэтому, если кто-нибудь сможет помочь, я буду очень благодарен.