@ManagedBean(name="loginBean")
@RequestScoped
public class LoginBean extends BasicController {
@Inject
private Autenticator authenticator;
o problema é que o Autenticator (@SessionScoped) não está se mantendo em sessão. Não sei o que pode ser, pesquisando sobre a classe javax.enterprise.context.SessionScoped existem em duas dependencias… a javaee-web-api e javaee-api, não sei se isso influencia…
Bom, para quem estiver com o mesmo problema, descobri duas coisas:
1° - não é possível chamar diretamente a partir da EL do xhtml, ou senha
<h:commandLink action="#{autenticator.method}" /> não funciona da mesma forma que o @ManagedBean.
2° - uso o netbeans, e navegando no objeto dentro do bean (através do debug, com breakpoint), sempre visualizo as propriedades do objeto como null, e o mesmo não estão, pois ao verificar um getter, o retorno era o objeto que deveria estar em sessão, mas a IDE extranhamente não consegue ver o objeto que está lá.
Bom posso estar errado, mas funcionou por aqui.
C
cmiranda.marcelo
Olá amigo, o problema que voce está passando é devido a utilizacao do @SessionScoped (javax.enterprise.context.SessionScoped) + @ManagedBean…
O certo seria voce utilizar @SessionScoped do pacote javax.faces.bean, pois da forma que voce está utilizando atualmente, suas paginas xhtml não “enxergarão” seus beans, pois ele espera beans gerenciados pelo CDI (anotados com @Named).
Entao, como voce utiliza o contexto do JSF o correto é utilizar o @SessionEscoped do javax.faces.bean.
Eh isso aew…
flw brother!
L
luis.boch
Na verdade não queria usar o @ManagedBean, pois a intenção é pode injetar ele dentro de outros servlets além do jsf, mas consegui resolver o problema mantendo um @ManagedBean com @ApplicationScoped, e neste bean injeto o outro, assim ele funciona perfeitamente. e até ficou mais limpo. Mas obrigado, agora entendi, pra chamar o @SessionScoped do enterprise, preciso tambem do @Named. Obrigado pela informação.