Como migrar a sessao do usurio para uma outra aplicacao?
6 respostas
deniswsrosa
Salve galera…
seguinte… existe no sistema q estou desenvolvendo duas aplicacoes distintas, q em certo ponto permitem que o usuario migre de uma para a outra, sendo q cada uma esta em um war diferente ( claro!!!), a minha duvida 'e como trocar de aplicacao mantendo a mesma sessao??? obs: levando em consideracao que podem estar rodando em jvms distintas
Em JVMs distintas? Serialize o que você puder (talvez em banco ), e na segunda aplicação leia os dados do banco. Muito nojento.
A
alots_ssa
Eu acho que nao tem como vc fazer isso nao velho, mas sei la, de vez em quando tudo pode. Vc pode tb guardar seu objeto na sessao e passar para outra aplicacao via socket sei la, ou armazenar os dados dessa em um arquivo xml por exemplo, e remonta o objeto do outro lado. Com xstream vc faz isso muito rapido.
Alberto
deniswsrosa
thingol:
Em JVMs distintas? Serialize o que você puder (talvez em banco ), e na segunda aplicação leia os dados do banco. Muito nojento.
daria pra fazer via RMI naum daria??? tipo usando ejb???
T
thingol
Esse tipo de coisa depende horrores do ambiente em que você está, já que não é previsto pela especificação J2EE.
Veja com o fornecedor de seu ambiente (IBM Websphere? BEA Weblogic? Sun Java System Application Server? ) se existe alguma coisa que faça isso por você sem depender de banco ou outras coisas nojentas (tais como pegar o jsessionid, copiá-lo para a URL que envia a primeira aplicação para a segunda, e inventar alguma coisa em cima dele. A propósito, herdar o jsessionid acho que não vale para transferir de uma aplicação para outra.)
marcelo_mococa
se vc estiver usando o WebSphere, coloque os dois projetos dentro do mesmo EAR. Depois vai nas configurações do ear e tem uma opção lá pra vc compartilhar a sessao para todos os war.
H
Hikari
Do pouco q eu conheço de Java parece q usar XML é o mais portável.
A aplicação de origem gera um XML com todos os dados importantes e dispobiliza pra todo mundo (tipo http://www.dominio.com/dados.xml) e redireciona pra próxima aplicação passando essa url. Aí a aplicação tem um servlet só pra receber esse request, pega a url, faz download do XML e converte tudo em dados de novo.
Como fazer esse redirecionamento eu naum sei. Forward via dispatcher naum dá pq é aplicação diferente. Até onde eu sei com o sendRedirect o browse naum passa nem os parâmetros originais da requisição, muito menos redirecionar parâmetros novos.
E isso tudo ia ter q ser feito pra suportar vários usuários usando as 2 aplicações ao mesmo tempo…