SessionId em duas aplicações no Tomcat

1 resposta
F

Oi Pessoal,

Se alguem puder ajudar eu agradeço.

Eu estou desenvolvendo algumas aplicações baseadas em Struts 1.1 e Tomcat4, a questão é que tenho duas aplicações(contextos) que precisam trocar informações(objetos), pensei em usar a session para isso, configurei o Crosscontext do Tomcat para true, mas não consigo manter a sessão quando redireciono uma chamada para a outra aplicação.

Crio a session em um actionServlet e coloco um objeto na session, chamo um JSP que faz um document.location.href para a outra action da outra aplicação, pois não consegui redirecionar usando o forward do struts.

Acontece que ao mandar pegar a session, e usando true no request.getSession ele cria uma nova, se usar false ele não cria a session.

Tentei passar a sessionId na URL, o método request.isRequestedSessionIdFromURL() indentifica a session e retorna true, mas ao pedir a session para o request, ele cria uma nova.

Se alguem puder ajudar, éu agradeço muuuuuuiiiiiiitooooo…

1 Resposta

H

É, fdonaire, eu já passei por algo parecido…

Minha conclusão é que o servlet container, quando cria diversos containers, parece criar uma instância da JVM para cada um deles. Ora, JVM’s distintas não podem se comunicar a nível de objeto. Tem que usar uma estrutura externa para isso. Com esse intuito, inclusive permitindo a comunicação em máquinas diferentes, foi criada o JMS.

No meu caso, que era uma bateria de testes de regressão, usei umas servlets auxiliares e headers HTTP para troca de dados. Se você está usando EJB, pode usar os message beans para isso (nunca tentei isso).

Criado 18 de fevereiro de 2004
Ultima resposta 19 de fev. de 2004
Respostas 1
Participantes 2