Qual seria a função de um SessionContext?? , pois sei que Session HTTP serve para armazenar informações enquanto o usuário esteja no site.
SessionContext
10 Respostas
Ta na API explicando: http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/ejb/SessionContext.html
Ok, obrigado leandroqbs, porem estou precisando guardar um objeto Stateful na SessionContext e nao estou sabendo como, pois depois irei interceptar um método e precisava desse objeto que foi guardado na session, como faço isso ?
Cara, me explica o que vc quer exatamente. É no ejb mesmo? ou no projeto web que vc ta querendo fazer isso? É sessioncontext mesmo ou é httpsession?
leandro é EJB e sessionContext, o que eu quero é o seguinte: qdo eu logar no sistema eu qro guardar um objeto Stateful que é o Usuario logado na Session Context e depois quando for executar um método de salvar da app, eu vou interceptar o método e verifica se o usuário tem a permissão de executar.
Se o seu EJB é Statefull vc não precisa quardar o usuário na sessão. Basta vc ter uma instância do Usuário dentro do seu EJB Statefull e ele vai existir enquanto durar a sessão daquele usuário com o contexto da aplicação.
Lembre do exemplo clássico do Carrinho de Compras. 
Vc precisa ter um SessionBean Statefull para fazer o que quer… Pensa no carrinho de compras que o amigo falou: Vc põe um livro no seu carrinho de compras em um e-commerce qualquer, o sistema coloca um flag de -1 um produto no estoque enquanto sua sessão estiver ativa… é aí que entra o seu SessionBean Statefull, nele vc mantém o estado dos objetos no qual está trabalhando…
Olá,
Estou com um problema parecido… faço o mesmo, porém quando dou um lookup no SessionBean Statefull ele me retorna uma nova instancia.
Consigo fazer o lookup pegar o mesmo Statefull ?
Olá,
Estou com um problema parecido… faço o mesmo, porém quando dou um lookup no SessionBean Statefull ele me retorna uma nova instancia.
Consigo fazer o lookup pegar o mesmo Statefull ?
Acho que Stateful é 1 por cliente.
Mas fora do container, toda vez que faço um lookup ele me retorna uma nova instância.
Stateful na verdade significa que há uma única instância por cliente. Ou seja, você faz o lookup uma única vez e usa o bean a vontade podendo usar atributos de classe, pois o bean é todo seu. Porém cada vez que você faz um lookup você recebe uma nova instância.
Stateless é quando você recebe uma instancia compartilhada. Ou seja, você não pode usar atributo de classe porque esse seu EJB é compartilhado. A cada lookup você recebe uma instância compartilhada.
Não invente moda, EJB stateful não é para isso. Para saber qual usuário está autenticado e se ele possui permissão use JAAS. Conforme a spec, JAAS que é responsável pelo controle de autenticação e autorização. Via SessionContext.getCallerPrincipal você recebe o usuário. SessionContext.isCallerInRole você sabe se o usuário pertence a tal role.