JSF - chamar managed bean ao iniciar aplicação

11 respostas
matheuscechito

Olá a todos,

Estou querendo chamar um managed bean ao iniciar minha aplicação (tomcat).

Se fosse com JSP+Servlet, eu criaria um Servlet com o método init() e declarava isso no web.xml

Tem como fazer a mesma coisa com JSF, chamando um bean?!?!?!?!
(Obs.: eu preciso que essa chamada ao bean, inicie o FacesContext)

Obrigado.

11 Respostas

T

vc quer executar UM Método do managed Bean, certo?

T

Faça um Servlet Context Listener para instaciar esses objetos… É apenas uma opinião…rs

matheuscechito

Tecnoage:
vc quer executar UM Método do managed Bean, certo?

Faça um Servlet Context Listener para instaciar esses objetos… É apenas uma opinião…rs

Sim, pode ser um método.

Onde eu faço a declaração desse Servlet Context, para que ele seja chamado ao inicar o Tomcat???

vlw

matheuscechito

Disfarce… :oops:

acabei de procurar no google sobre ServletContextListener…rsrs…

bom, ele irá iniciar com minha aplicação, mas daí como faço pra chamar um bean???

T

hum… preciso pesquisar, nunca fiz isso… se achar algo posto aqui…

Ferryman

Eae rapaz.

Bom pra pegar uma instancia do bean vc pode fazer

FacesContext faces = FacesContext.getCurrentInstance();

NomeDoBeanNoFacesConfig bean = (NomeDoBeanNoFacesConfig) faces.getApplication().getVariableResolver().resolveVariable(faces, "nomeDoBeanNoFacesConfig");

bean.meuMetodo();

Bom testa ae, eu não sei se o FacesContext ja foi iniciado neste momento, mas se não foi teria algum problema em instanciar o bean com new mesmo?

você pode tentar isso.

Abraço

Ferry

matheuscechito

Ferryman:
Eae rapaz.

Bom pra pegar uma instancia do bean vc pode fazer

FacesContext faces = FacesContext.getCurrentInstance();

NomeDoBeanNoFacesConfig bean = (NomeDoBeanNoFacesConfig) faces.getApplication().getVariableResolver().resolveVariable(faces, "nomeDoBeanNoFacesConfig");

bean.meuMetodo();

Bom testa ae, eu não sei se o FacesContext ja foi iniciado neste momento, mas se não foi teria algum problema em instanciar o bean com new mesmo?

você pode tentar isso.

então, é que o que eu realmente precisava não acontece, que é a inicialização do FacesContext…ele vem nulo!!!
vou continuar pesquisando, se eu achar algo eu posto…

vlw

Ferryman

Só não entendi pq vc não pode instanciar esse bean na mão…

matheuscechito

Ferryman:
Só não entendi pq vc não pode instanciar esse bean na mão…

pq se eu inicio o bean na mão, o FacesContext não é inicializado.

R

Dae pessoal,

depois de algum tempo… hehe

foi achada alguma solução para isto?

Abcs

R

Achei a solução em:

Criado 23 de julho de 2007
Ultima resposta 13 de jan. de 2011
Respostas 11
Participantes 4