[RESOLVIDO]Reinicialização do MBEAN

6 respostas
K

Bom dia amigos e amigas do GUJ, tenho uma aplicação JSF2 e estou utilizando o mecanismo de redirect ao chamar uma nova página de CRUD.
Meu problema é o seguinte: Eu cadastro uma nova unidade acadêmica, e no MBEAN de um CRUD de solicitaões relacionadas a essas unidades,
existe uma lista de unidades, que é recarregada no construtor desse MBEAN. Só que qdo eu cadastro uma nova unidade e vou no CRUD de solicitações,
o MBEAN dessas solicitações não é reinstanciado e portanto a lista não é atualizada. Alguém saberia me ajudar resolver isso sem ter que usar um
<p:ajax> ? Um abraço a todos.

6 Respostas

Hebert_Coelho

Ao final do método do primeiro cadastro vc faz

meuBean = new Bean();

K

Eu estava fazendo isso, dentro de um controlador, chamava outro…

FacesContext ctx = FacesContext.getCurrentInstance();
		    Map<String,Object> sessionMap = ctx.getExternalContext().getSessionMap();
		    this.utilBean = (UtilidadesController) sessionMap.get("UtilidadesController");
		    //FIXME observar se existe realmente a necessidade de controlar a isntância de controladores no contexto do jsf
		    if ( this.utilBean == null ){
		    	this.utilBean = new UtilidadesController();
		        sessionMap.put("UtilidadesController", utilBean);
		    }

isso ae estah dentro de um getController… mas tenho pensado que não seria boa opção intervir no gerenciamento do ciclo de vida de um MBEAN, penso que seja uma atvidade nata do jsf e que pode me trazer danos futuros fazer essa intervenção. O que acha?

Hebert_Coelho

Quando se usa sessionBean eu já vi que isso é um mau necessário.

Ou então você pode criar um método dentro do seu UtilidadesController em que ele se reseta. [=

Ao iniciar um cadastro (mesmo que seja na primeira vez) vocÊ chamaria

utilidadesController.reset();

E nesse método você zera moçada, que tal?! \o/

K

Putz, to vendo que vou ter que fazer isso… valew a dica… por falta de aprofundamento no assunto tinha receio de ter problemas futuros por pensar que o controle de instâncias dos MBEANS deveria ser exclusivo do JSF.Mas como vimos está aberta ao programador intervir nas instâncias de MBEANS no contexto do JSF…

FernandoFranzini

Programador pode interferir no ciclo de vida sim. Na verdade o JSF só faz o papel automática, qualquer customização fica livre. No caso vc tem q pegar a referencia do MDBen e fazer oq vc quiser…até remover da sessão se for necessario.

K

Obrigado amigos, estou mais seguro agora para intervir no ciclo do MBEAN… um abç…

Criado 17 de novembro de 2011
Ultima resposta 18 de nov. de 2011
Respostas 6
Participantes 3