Ne pouvez pas obtenir la persistance au travail dans JBoss as 7 (“impossible de trouver une unité de déploiement nommé à la sous-déploiement”)

J'essaie de mettre en œuvre une démonstration qui utilise JBoss as 7 avec défaut d'hibernate et de la Base de données par défaut livré avec JBoss as. Mon application est similaire à la "connexion" exemple de JBoss (j'ai quelques projets supplémentaires pour mettre en œuvre un service web et de déploiement de l'OREILLE) et je ne peux pas rattraper la différence. De toute façon je ne cesse de recevoir Exécution des Exceptions comme

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]

Mon MANIFESTE.MF

Manifest-Version: 1.0
Dependencies: org.hibernate

Mon beans.xml est vide. Dans mon dossier lib j'ai l'hibernation des pots d'avoir accès natif hibernate fonctionnalités.

Mon 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>  

Et mes deux classes:

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();
    }
}

Ce qui peut provoquer l'exception? Que dois-je chercher pour résoudre le problème?

OriginalL'auteur Arne Deutsch | 2011-11-18