CDI: WELD-001408 Dépendances insatisfaites, comment le résoudre?

Je fais un petit projet de test avec le CDI. Mon application est composée d'un EJB de l'OREILLE et de la GUERRE, le tout déployé sur Glassfish 4. Je suis de l'utilisation d'Hibernate 4.3.4 pour accéder à la base de données.

Mon but est de vérifier qu'une classe dans un EJB (DAO) peut recevoir une injection d'un EntityManager.

Le modèle SessionBean + EJB n'est pas fantastique, mais j'ai modifier une application déjà créés, de sorte que je n'ai pas trop le choix.

Voici mon code de l'EJB:

@Named
public class DAOTest implements Serializable {
    private static final long serialVersionUID = 1L;

    @PersistenceContext(unitName="CDI-ejb")
    private EntityManager em;

    public void test(){
        //em.getClass();
    }


    public EntityManager getEm() {
       return em;
    }


    public void setEm(EntityManager em) {
        this.em = em;
    }

    public DAOTest() {
        //TODO Auto-generated constructor stub
    }

}

Service.java

@Stateless
@LocalBean
public class Service implements ServiceLocal {

    @Inject DAOTest test;
    /**
    * Default constructor. 
    */
    public Service() {
        //TODO Auto-generated constructor stub
    }


    @Override
    public void test() {
        test.test();

    }


}

et ServiceLocal.java

@Local
public interface ServiceLocal {
    void test();
}

Et à l'intérieur de ma guerre :

@WebServlet("/Test")
public class Test extends HttpServlet {
    private static final long serialVersionUID = 1L;
    @Inject private ServiceLocal service;

    /**
    * @see HttpServlet#HttpServlet()
    */
    public Test() {
        super();
        //TODO Auto-generated constructor stub
    }


    /**
    * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        service.test();
    }


    /**
    * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //TODO Auto-generated method stub
    }


 }

J'ai testé la DAOTest en annotant avec @ Stateless annotation. Tout se passe comme il se doit. Donc, CDI fonctionne bien. Mais avec juste @ Nommé il ne veut pas travailler.

Une idée?

La stacktrace:

org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [DAOTest] with qualifiers [@Default] at injection point [[BackedAnnotatedField] @Inject test.Service.test]

Mon beans.xml

<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

source d'informationauteur Scandinave