JBoss AS 7'yi varsayılan hazırda bekleme ve varsayılan veritabanı olan JBoss AS kullanan bir demoyu uygulamaya çalışıyorum. Benim uygulamam JBoss'un "giriş" örneğine benziyor (web servisini uygulamak ve EAR olarak uygulamak için bazı ek projelerim var) ve farkı yakalayamıyorum. Neyse ben sürekli Benim beans.xml boş böyleJBoss AS 7'de çalışmaya devam edemiyorum ("Subdeployment adında bir dağıtım birimi bulamıyor")
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]
Benim MANIFEST.MF
Manifest-Version: 1.0
Dependencies: org.hibernate
gibi Zamanı İstisnalar olsun. Lib klasöründe yerel hazırda bekleme özelliklerine erişim için hazırda bekletme kavanozlarına sahibim.
Benim 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>
Ve benim iki İlgili sınıfları:
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();
}
}
Ne istisna neden olabilir? Sorunu çözmek için nelere dikkat etmeliyim?
Ve daha önce "persistence.xml" neydi? EJB-jar'ın EAR içindeki META-INF dizininde mi? –
Ve savaş kullanan herkes için, persistence.xml sizin_app_name \ src \ main \ resources \ META-INF içinde olmalı 1 saatimi aldı :( – halil
Merhaba, birçok IDE (intellij gibi) WRONG klasöründe kalıcı xml oluşturur Kullanarak .war. Çok yararlı Yorum – Goot