1
resposta

Recebi a exception depois de realizar os procedimentos desta aula

Acredito que tem haver com o segundo parâmetro no construtor do ProdutoController

GRAVE: Exceção ao enviar evento de contexto iniciado para instância listener da classe [org.jboss.weld.environment.servlet.Listener]
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type ProdutoDao with qualifiers @Default
  at injection point [BackedAnnotatedParameter] Parameter 2 of [BackedAnnotatedConstructor] @Inject public br.com.caelum.vraptor.controller.ProdutoController(Result, ProdutoDao)
  at br.com.caelum.vraptor.controller.ProdutoController.<init>(ProdutoController.java:0)

Meu ProdutoController:

package br.com.caelum.vraptor.controller;

import javax.inject.Inject; import br.com.caelum.vraptor.Controller; import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Post; import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.dao.ProdutoDao; import br.com.caelum.vraptor.model.Produto; import br.com.caelum.vraptor.view.Results;

@Controller

public class ProdutoController {

private final Result result;
private final ProdutoDao dao;

@Inject
public ProdutoController(Result result, ProdutoDao dao) {
    this.result = result;
    this.dao = dao;
}


public ProdutoController() {
    this(null, null);
}

@Get("/")
public void inicio() {

}

@Get
public void lista() {

    result.include("produtoList", dao.lista());

}

@Get
public void listaEmXml() {

    result.use(Results.xml()).from(dao.lista()).serialize();

}

@Get
public void formulario() {

}

@Post
public void adiciona(Produto produto) {

    dao.adiciona(produto);
    result.include("mensagem", "Produto adicionado com sucesso!");
    result.redirectTo(this).lista();
}

@Get
public void remove(Produto produto) {
    dao.remove(produto);

}

}

Meu EntityManagerProducer:

package br.com.caelum.vraptor.producers;

import javax.enterprise.inject.Produces; import javax.persistence.EntityManager;

import br.com.caelum.vraptor.util.JPAUtil;

public class EntityManagerProducer {

@Produces 
public EntityManager criaEntityM() {
    return JPAUtil.criaEntityManager();

}

}

1 resposta
return JPAUtil.criaEntityManager();

Provavelmente esse entity manager não está sendo criado, consegue dar uma debugada para ver o ponto de falha?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software