ejb3 sessão

7 respostas
F

Senhores,
Estou começando a ler sobre assunto e estou com bastante dúvidas. A primeira que não me ficou muito clara é a seguinte,
quando se fala de sessão em beas é o mesmo de sessão da aplicação web?

7 Respostas

Hebert_Coelho

Ele fica alocado na memória do servidor, mas ñ está ligado a um HttpSession.
Imagine que ele é outro Session.

Ele apenas estará ligado ao HttpSession se você fizer algo do tipo session.setAtribute(“meuEjbStateful”, meuEjbStateful). [=

F

Hebert Coelho:
Ele fica alocado na memória do servidor, mas ñ está ligado a um HttpSession.
Imagine que ele é outro Session.

Ele apenas estará ligado ao HttpSession se você fizer algo do tipo session.setAtribute(“meuEjbStateful”, meuEjbStateful). [=

Uhmm… mas pq temos duas sessões? Como elas se comunicam? Pode fazer um exemplo?

F

Hebert Coelho:
Ele fica alocado na memória do servidor, mas ñ está ligado a um HttpSession.
Imagine que ele é outro Session.

Ele apenas estará ligado ao HttpSession se você fizer algo do tipo session.setAtribute(“meuEjbStateful”, meuEjbStateful). [=

mais uma pergunta vi no seu tutorial sobre ejb, mas seu exemplo usa jboss, não é possível com tomcat :?:

Hebert_Coelho

fabioEM:
Hebert Coelho:
Ele fica alocado na memória do servidor, mas ñ está ligado a um HttpSession.
Imagine que ele é outro Session.

Ele apenas estará ligado ao HttpSession se você fizer algo do tipo session.setAtribute(“meuEjbStateful”, meuEjbStateful). [=

Uhmm… mas pq temos duas sessões? Como elas se comunicam? Pode fazer um exemplo?

O exemplo é esse: httpSession.setAtribute(“meuEjbStateful”, meuEjbStateful);

São tecnologias diferentes.

HttpSession lida com chamadas Web. A sessão de um EJB lida com chamadas de algum cliente que pode ser web ou não, mas ele não guardará dados de instância.@Stateful public class MeuEJB // e vai embora...

se você fizer meuEJB.metodo1(); meuEJB.metodo2(); meuEJB.metodo3();

A referência desse EJB vai manter a o objeto vivo, na sessão de EJB.

Por isso que para relacionar a sessão de EJB com a sessão de HttpSession seria necessário fazer: httpSession.setAtribute(“meuEjbStateful”, meuEjbStateful);

O HttpSession se matém vivo enquanto o usuário estiver usando a página ou a sessão não expirar. Por isso que ao colocar uma referência a um EJB Stateful dentro de um HttpSession, o EJB Stateful permanecerá vivo. [=

Hebert_Coelho

fabioEM:
Hebert Coelho:
Ele fica alocado na memória do servidor, mas ñ está ligado a um HttpSession.
Imagine que ele é outro Session.

Ele apenas estará ligado ao HttpSession se você fizer algo do tipo session.setAtribute(“meuEjbStateful”, meuEjbStateful). [=

mais uma pergunta vi no seu tutorial sobre ejb, mas seu exemplo usa jboss, não é possível com tomcat :?:

Atualmente não.

Tem um tal de TomEE que consegue. Para rodar EJB precisa de ter um servidor que implemente essa parte da especificação JEE e Tomcat não faz isso. Tem o JBoss e o Glassfish que eu costumo recomendar. [=

F

Hebert Coelho:
fabioEM:
Hebert Coelho:
Ele fica alocado na memória do servidor, mas ñ está ligado a um HttpSession.
Imagine que ele é outro Session.

Ele apenas estará ligado ao HttpSession se você fizer algo do tipo session.setAtribute(“meuEjbStateful”, meuEjbStateful). [=

mais uma pergunta vi no seu tutorial sobre ejb, mas seu exemplo usa jboss, não é possível com tomcat :?:

Atualmente não.

Tem um tal de TomEE que consegue. Para rodar EJB precisa de ter um servidor que implemente essa parte da especificação JEE e Tomcat não faz isso. Tem o JBoss e o Glassfish que eu costumo recomendar. [=


Grato cara.
Então as sessões webs e a do container do ejb podem se integrar (comunicar) é isso :?:

Hebert_Coelho

fabioEM:
Grato cara.
Então as sessões webs e a do container do ejb podem se integrar (comunicar) é isso :?:
uhum.
Basta você injetar ou realizar lookup de um EJB na camada Web. [=

Criado 22 de janeiro de 2013
Ultima resposta 24 de jan. de 2013
Respostas 7
Participantes 2