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?
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). [=
[quote=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). [=[/quote]
Uhmm… mas pq temos duas sessões? Como elas se comunicam? Pode fazer um exemplo?
[quote=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). [=[/quote]
mais uma pergunta vi no seu tutorial sobre ejb, mas seu exemplo usa jboss, não é possível com tomcat :?:
[quote=fabioEM][quote=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). [=[/quote]
Uhmm… mas pq temos duas sessões? Como elas se comunicam? Pode fazer um exemplo?[/quote]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. [=
[quote=fabioEM][quote=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). [=[/quote]
mais uma pergunta vi no seu tutorial sobre ejb, mas seu exemplo usa jboss, não é possível com tomcat :?: [/quote]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. [=
[quote=Hebert Coelho][quote=fabioEM][quote=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). [=[/quote]
mais uma pergunta vi no seu tutorial sobre ejb, mas seu exemplo usa jboss, não é possível com tomcat :?: [/quote]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. [=[/quote]
Grato cara.
Então as sessões webs e a do container do ejb podem se integrar (comunicar) é isso :?:
[quote=fabioEM]Grato cara.
Então as sessões webs e a do container do ejb podem se integrar (comunicar) é isso :?: [/quote]uhum.
Basta você injetar ou realizar lookup de um EJB na camada Web. [=