JBoss ASに付属のデフォルトの休止状態とデフォルトのデータベースでJBoss AS 7を使用するデモを実装しようとしています。私の実装はJBossの "login"の例と似ています(私はWebサービスを実装し、EARとして展開するいくつかのプロジェクトがあります)。とにかく私は常に私のbeans.xmlのが空であるようにJBoss AS 7で永続性が機能しない(サブデプロイメント時に名前のあるデプロイメントユニットが見つかりません)
Caused by: java.lang.RuntimeException: Can't find a deployment unit named at subdeployment "myproject.persistence.war" of deployment "myproject.ear"
at org.jboss.as.weld.services.bootstrap.WeldJpaInjectionServices.getScopedPUName(WeldJpaInjectionServices.java:94) [jboss-as-weld-7.0.2.Final.jar:7.0.2.Final]
at org.jboss.as.weld.services.bootstrap.WeldJpaInjectionServices.resolvePersistenceContext(WeldJpaInjectionServices.java:59) [jboss-as-weld-7.0.2.Final.jar:7.0.2.Final]
at org.jboss.weld.util.Beans.injectEEFields(Beans.java:784) [weld-core-1.1.2.Final.jar:2011-07-26 15:02]
マイMANIFEST.MF
Manifest-Version: 1.0
Dependencies: org.hibernate
としてランタイム例外を取得します。私のlibフォルダには、休止状態のjarファイルがネイティブな休止状態の機能にアクセスできるようになっています。
マイpersistence.xmlの
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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 http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="accessControlDatabase">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
</properties>
</persistence-unit>
</persistence>
そして、私の2つの関連クラス:
import javax.enterprise.inject.Produces;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
public class Resources {
@SuppressWarnings("unused")
@Produces
@PersistenceContext(name = "accessControlDatabase")
private EntityManager em;
}
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityManager;
import myproject.model.Session;
import myproject.model.User;
@Named("accessControlRepository")
@RequestScoped
public class AccessControlRepository {
@Inject
private EntityManager em;
@SuppressWarnings("unchecked")
public List<Session> getAllSessions() {
return em.createQuery("from Session").getResultList();
}
}
何例外を引き起こす可能性がありますか?問題を解決するにはどうすればよいですか?
「persistence.xml」はどこにあったのですか? EAR内のejb-jarのMETA-INFディレクトリにありますか? –
そしてwarを使っている人は、persistence.xmlはあなたの_app_name¥src¥main¥resources¥META-INFにあるはずです。これは私の1時間かかりました:( – halil
) .warを使用しています。非常に有用なコメント – Goot