Recuperar Managed Bean escopo de sessão

10 respostas
F

Boa tarde pessoal,

Vocês sabem como faço para poder recuperar um Managed Bean com escopo de sessão dentro de um EJB ?

Ja tentei recuperar pelo contexto da aplicação fazendo um binding mas sempre vem como null !!

Agradeço desde já !!

10 Respostas

H

JSF não é visto pela camada de negócio.

T
Hebert Coelho:
JSF não é visto pela camada de negócio.

Acabei resolvendo Hebert Coelho. Consegui recuperar meu Managed Bean pelo ElContext e está funcional:

FacesContext facesContext = FacesContext.getCurrentInstance();
        ELContext elContext = facesContext.getELContext();
        ExpressionFactory factory = facesContext.getApplication().getExpressionFactory();
        MeuManagedBean meuBean = (MeuManagedBean) factory.createValueExpression(elContext, "#{MeuManagedBean}", Object.class).getValue(elContext);

Não querendo duvidar do que você me disse ... POR FAVOR ... mas eu consegue recuperar o bean pelo ELContext com todos os seu dados certinho.
Gostaria de saber sua opinião, ficaria muito grato !

H
Theringeye:
Hebert Coelho:
JSF não é visto pela camada de negócio.

Acabei resolvendo Hebert Coelho. Consegui recuperar meu Managed Bean pelo ElContext e está funcional:

FacesContext facesContext = FacesContext.getCurrentInstance();
        ELContext elContext = facesContext.getELContext();
        ExpressionFactory factory = facesContext.getApplication().getExpressionFactory();
        MeuManagedBean meuBean = (MeuManagedBean) factory.createValueExpression(elContext, "#{MeuManagedBean}", Object.class).getValue(elContext);

Não querendo duvidar do que você me disse ... POR FAVOR ... mas eu consegue recuperar o bean pelo ELContext com todos os seu dados certinho.

Tudo bem. Parabéns. [=
E olha que antes de responder aqui eu conversei com outro sênior em jsf. [=

T
Hebert Coelho:
Theringeye:
Hebert Coelho:
JSF não é visto pela camada de negócio.

Acabei resolvendo Hebert Coelho. Consegui recuperar meu Managed Bean pelo ElContext e está funcional:

FacesContext facesContext = FacesContext.getCurrentInstance();
        ELContext elContext = facesContext.getELContext();
        ExpressionFactory factory = facesContext.getApplication().getExpressionFactory();
        MeuManagedBean meuBean = (MeuManagedBean) factory.createValueExpression(elContext, "#{MeuManagedBean}", Object.class).getValue(elContext);

Não querendo duvidar do que você me disse ... POR FAVOR ... mas eu consegue recuperar o bean pelo ELContext com todos os seu dados certinho.

Tudo bem. Parabéns. [=
E olha que antes de responder aqui eu conversei com outro sênior em jsf. [=

Não estou querendo menospresar nada do que você disse, por favor, muito pelo contrário, estou aqui em busca de conhecimento e opiniões, para aprender. Você já havia testado ou tinha conhecimento de uma forma como essa ? Como você tem bastante experiência !!!!

H

Theringeye:
Não estou querendo menospresar nada do que você disse, por favor, muito pelo contrário, estou aqui em busca de conhecimento e opiniões, para aprender. Você já havia testado ou tinha conhecimento de uma forma como essa ? Como você tem bastante experiência !!!
Que isso cara, seu tudo de JSF não. [=

Vou te responder o que um parceiro aqui falou: “eu não vejo necessidade disso”.

Você está ferindo a arquitetura do sistema ao fazer isso, ainda mais com EJB.

T

Hebert Coelho:
Theringeye:
Não estou querendo menospresar nada do que você disse, por favor, muito pelo contrário, estou aqui em busca de conhecimento e opiniões, para aprender. Você já havia testado ou tinha conhecimento de uma forma como essa ? Como você tem bastante experiência !!!
Que isso cara, seu tudo de JSF não. [=

Vou te responder o que um parceiro aqui falou: “eu não vejo necessidade disso”.

Você está ferindo a arquitetura do sistema ao fazer isso, ainda mais com EJB.

Pois é, verdade, até onde meu conhecimento está, estou realmente ferindo a arquitetura. O que eu quero é pegar o usuário logado na sessão, e ao invés de simplesmente após a autenticação no login, inserir o usuário nela, eu queria pegar todo o MB. Mas to começando a achar que vou pegar somente o objeto usuário na sessão mesmo.
É coisa da minha cabeça sabe, eu queria é fazer essa troca de dados entro os objetos, mas é errado, admito.

H

Theringeye:
Pois é, verdade, até onde meu conhecimento está, estou realmente ferindo a arquitetura. O que eu quero é pegar o usuário logado na sessão, e ao invés de simplesmente após a autenticação no login, inserir o usuário nela, eu queria pegar todo o MB. Mas to começando a achar que vou pegar somente o objeto usuário na sessão mesmo.
É coisa da minha cabeça sabe, eu queria é fazer essa troca de dados entro os objetos, mas é errado, admito.
Isso pode ser feito com JAAS, mas você teria que alterar a estrutura de login do seu sistema.

Bem, pelo menos está funcionando. [=

T

Hebert Coelho:
Theringeye:
Pois é, verdade, até onde meu conhecimento está, estou realmente ferindo a arquitetura. O que eu quero é pegar o usuário logado na sessão, e ao invés de simplesmente após a autenticação no login, inserir o usuário nela, eu queria pegar todo o MB. Mas to começando a achar que vou pegar somente o objeto usuário na sessão mesmo.
É coisa da minha cabeça sabe, eu queria é fazer essa troca de dados entro os objetos, mas é errado, admito.
Isso pode ser feito com JAAS, mas você teria que alterar a estrutura de login do seu sistema.

Bem, pelo menos está funcionando. [=

Ta funcionando neh, kk … mas não pode ficar gambiarra, eu fico agoniado com isso, se foge as regras eu já acho ruim !!!
Pois é Hebert, aproveitando o gancho, assim, eu ainda terei que rever a parte de login do meu sistema. Eu quero que por exemplo, depois do usuário logado, se ele abrir uma outra janela, ele já esteja registrado na sessão e não seja mostrado a tela de login novamente para ele, ou se ele fizer logout em uma tela e na outra janela ainda estiver a tela do sistema aberta, ao clicar em alguma funcão, o sistema peça que ele faça login. Tem ideia como posso fazer isso ? Por acaso seria ficar monitorando a sessão ?

H

Theringeye:
Ta funcionando neh, kk … mas não pode ficar gambiarra, eu fico agoniado com isso, se foge as regras eu já acho ruim !!!
Pois é Hebert, aproveitando o gancho, assim, eu ainda terei que rever a parte de login do meu sistema. Eu quero que por exemplo, depois do usuário logado, se ele abrir uma outra janela, ele já esteja registrado na sessão e não seja mostrado a tela de login novamente para ele, ou se ele fizer logout em uma tela e na outra janela ainda estiver a tela do sistema aberta, ao clicar em alguma funcão, o sistema peça que ele faça login. Tem ideia como posso fazer isso ? Por acaso seria ficar monitorando a sessão ?
Eu usaria JAAS. ele barraria um lugar proibido de entrar e exigiria login. [=

T

Hebert Coelho:
Theringeye:
Ta funcionando neh, kk … mas não pode ficar gambiarra, eu fico agoniado com isso, se foge as regras eu já acho ruim !!!
Pois é Hebert, aproveitando o gancho, assim, eu ainda terei que rever a parte de login do meu sistema. Eu quero que por exemplo, depois do usuário logado, se ele abrir uma outra janela, ele já esteja registrado na sessão e não seja mostrado a tela de login novamente para ele, ou se ele fizer logout em uma tela e na outra janela ainda estiver a tela do sistema aberta, ao clicar em alguma funcão, o sistema peça que ele faça login. Tem ideia como posso fazer isso ? Por acaso seria ficar monitorando a sessão ?
Eu usaria JAAS. ele barraria um lugar proibido de entrar e exigiria login. [=

Valew Hebert ! Vou estudar bem sobre isso e ver todas as possibilidades possíveis as e aplicar !!

Obrigado pelas dicas !!!

Criado 14 de março de 2013
Ultima resposta 15 de mar. de 2013
Respostas 10
Participantes 3