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