CDI: WELD-001408 Dependências não satisfeitas, como resolvê-lo?

Eu faço um pequeno projeto de teste com CDI. Meu aplicativo é composto de um EJB EAR e WAR, todos implantados no Glassfish 4. Estou usando o Hibernate 4.3.4 para acessar o banco de dados.

Meu objetivo é verificar se uma classe em um EJB (DAO) pode receber uma injeção de um EntityManager.

O padrão SessionBean + EJB não é fantástico, mas tenho que modificar um aplicativo já criado para não ter muita escolha.

Aqui está o meu código do 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();

    }


}

e ServiceLocal.java

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

E dentro da minha guerra:

@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
    }


 }

Testei o DAOTest anotando-o com anotação @ Stateless. Tudo acontece como deveria. Então, o CDI funciona bem. Mas com apenas @ Named, ele não quer funcionar.

,

Qualquer ideia?

O stacktrace:

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

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

questionAnswers(4)

yourAnswerToTheQuestion