Olá. Boa tarde.
Sou novo em Java, e fui criar uma EntityManageFactory usando CDI seguindo modelos que já existem prontos na web. Fiz o mesmo no DAO, seguindo exemplos. Já vi e revi várias vezes, porém não funciona, o manager fica null no DAO. Alguma dica do que posso estar fazendo errado?
public class EntityManagerProducer {
@Produces
@ApplicationScoped
public EntityManagerFactory getEntityManagerFactory() {
    return Persistence.createEntityManagerFactory("supersenaPU");
}
@Produces
@RequestScoped
public EntityManager getEntityManager(EntityManagerFactory factory) {
    return factory.createEntityManager();
}
public void fecharEntityManager(@Disposes EntityManager manager) {
    if (manager.isOpen()) {
        manager.close();
    }
}
}
public class UsuarioDAO {
@Inject
private EntityManager em;
public UsuarioDAO() {
}
public UsuarioBO buscarUsuario(long id) {
    UsuarioBO Usuario;
    try {
        Usuario = em.find(UsuarioBO.class, id); <-- em fica null aqui
    } catch (Exception ex) {
        return null;
    }
    return Usuario;
}
}