JBoss 7.02.Finalに問題があります。私はJBoss5.1GAからプロジェクトを移植しています(EE6をサポートするためのルックアップのかなりの量の書き換えの外で)。クラスパスにEclipselinkを登録する際に問題があります。私は周りを検索し、いくつかの記事がこの問題は修正されていると言われていますが、実際の例を見つけることはできません。JBoss7とEclipselink、EntityManagerの永続性プロバイダなし
私は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が、この場合は「生産」です。)
/**
* @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を正しくロードしていません。私はここでアイデアを使い果たしているので、誰かが助けてくれればとても感謝しています。 「
: - :http://dev.dzhokanov.com/?p=8によると
ジョン、ありがとう、私はショットをビルドします。 –
申し訳ありませんが、テストには時間がかかりましたが、はい、Eclipselink 2.4はJBoss 7.1.1でうまく動作しています。 –