Boa tarde, estou testando o VRaptor 4 e estou fazendo exatamente como está na documentação do site, mas estou recebendo um erro:
Criei um controller, e pra efeito de teste estou injetando a session direto nele:
@Controller
@RequestScoped
public class LoginController {
private final Session session;
/**
* @deprecated CDI
*/
public LoginController() {
this(null);
}
@Inject
public LoginController(Session session) {
this.session = session;
}
@Get
public void index() {
}
}
então criei um produces igualzinho ao do site:
@RequestScoped
public class SessionCreator {
@Inject private SessionFactory sessionFactory;
@Produces @RequestScoped
public Session getSession() {
return sessionFactory.openSession();
}
public void close(@Disposes Session session) {
if (session.isOpen()) {
session.close();
}
}
}
Eu recebo o seguinte erro:
UnproxyableResolutionException: WELD-001435 Normal scoped bean class org.hibernate.Session is not proxyable because it has no no-args constructor - Producer Method [Session] with qualifiers [@Any @Default] declared as [[BackedAnnotatedMethod] @Produces @RequestScoped public br.com.teste.cdi.SessionCreator.getSession()].
Se eu tirar o @RequestScoped que está em cima do método getSession e deixar apenas a classe anotada com @RequestScoped dai funciona, alguém sabe o por que?
Estou usando o Glassfish 4 e no log do servidor tem: Informações: WELD-000900 2.0.0 (SP1)
Obrigado.