| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 09:17:55
|
Rafael Rossignol
Java Ninja
![[Avatar]](/images/avatar/c8a869974092410b06e66.gif)
Membro desde: 17/02/2004 09:26:58
Mensagens: 259
Offline
|
fiz um requestDispatcher.forward pra outra aplicação no mesmo server, no request q eu repassei, mandei um objeto como atributo de request
qdo vou pegar ele na outra aplicação, ele lança classCastException, sendo que a classe é a mesma.
Alguem sabe como resolver? se não tiver como resolver, como eu consigo fazer uma troca?
|
"A Imaginação é mais importante que o Conhecimento"
Albert Einstein |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 09:22:07
|
LuizClaudio
JavaEvangelist
![[Avatar]](/images/avatar/a9cf46a38a9b05e959f33215e5cdc38a.png)
Membro desde: 03/04/2006 21:50:51
Mensagens: 388
Offline
|
Huummm...vc poderia passar os atributos do como parâmetro em get, ou então, como as duas aplicações estão no mesmo servidor fazer um diretório com os objetos serializados, ou ainda, num sei, talvez usar Corba ou RMI, depende muito do que vc quer fazer!!
|
"Porque Deus amou o mundo de tal maneira que deu seu filho unigênito para que todo aquele que nele crê não pereça, mas tenha vida eterna." João 3.16 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 09:25:56
|
gilberto.souza
JavaChild
Membro desde: 19/07/2005 13:26:38
Mensagens: 134
Offline
|
Um jeito fácil de resover isso é colocar o objeto na sessão.
|
O Homem, filho do tempo, reparte com o mesmo tempo o seu saber e a sua ignorância. Do passado sabe pouco, do presente menos e, do futuro nada! |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 09:34:16
|
LuizClaudio
JavaEvangelist
![[Avatar]](/images/avatar/a9cf46a38a9b05e959f33215e5cdc38a.png)
Membro desde: 03/04/2006 21:50:51
Mensagens: 388
Offline
|
gilberto.souza wrote:Um jeito fácil de resover isso é colocar o objeto na sessão.
Usar sessão mesmo para aplicações diferentes? vc já fez isso? Pensando bem, pode ser que der certo, afinal o objeto fica associado a sessão, num sei, mas isso num vai depender de como servletcontainer vai gerenciar isso, num sei!!???!!!
|
"Porque Deus amou o mundo de tal maneira que deu seu filho unigênito para que todo aquele que nele crê não pereça, mas tenha vida eterna." João 3.16 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 09:40:35
|
Bjornn Borg
JavaChild
Membro desde: 25/03/2004 15:03:50
Mensagens: 140
Offline
|
Vc tem certeza que isso funciona? Pelo que sei, quando vc encaminha o request para outra app, ocorre um redirect e a daí vc perde qualquer dado que haja no request...
Acho que você vai ter que bolar uma outra solução.
|
Tenha fé. O que é caro por R$ 10,00 poder ser barato por R$ 50,00 amanhã.
char[] name = {66,106,111,114,110,110,32,66,111,114,103};
char[] cert = {83,67,87,67,68,32,49,46,52}; |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 09:48:45
|
LuizClaudio
JavaEvangelist
![[Avatar]](/images/avatar/a9cf46a38a9b05e959f33215e5cdc38a.png)
Membro desde: 03/04/2006 21:50:51
Mensagens: 388
Offline
|
Bjornn Borg wrote:Vc tem certeza que isso funciona? Pelo que sei, quando vc encaminha o request para outra app, ocorre um redirect e a daí vc perde qualquer dado que haja no request...
Acho que você vai ter que bolar uma outra solução.
é eu tb acho que não, mas eu pensei, se o cara tivesse os atributos numa request get, tipo:
http://seilah.com.br/app?atributo1=valor1&atributo2=valor2
aí é só ver como mandar isso de um jeito onde o endereço fique preservado, num sei, numca fiz, é só uma idéia...
|
"Porque Deus amou o mundo de tal maneira que deu seu filho unigênito para que todo aquele que nele crê não pereça, mas tenha vida eterna." João 3.16 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 10:05:57
|
Rafael Rossignol
Java Ninja
![[Avatar]](/images/avatar/c8a869974092410b06e66.gif)
Membro desde: 17/02/2004 09:26:58
Mensagens: 259
Offline
|
LuizClaudio, vc quis dizer q pensou q eu tinha parameters.
Estou querendo repassar um login ja feito pra aplicações diferentes, na verdade estou criando um jar q vou partilhar entre as aplicações e faz com que o login esteja centralizado.
Estou usando o tomcat e ja testei um esquema de crossContext, que da pra redirecionar passando o request, eu debugo e o objeto chega (se não funcionasse não daria classCastException, e sim um nullPointer ou algo assim)
Sessão não funciona, ja tentei, sessão é por aplicação e não por containter.
Pelo que entendi até agora, o classpath é outro. O container deve considerar q são classes diferentes.
Quase consegui usando XMLDecoder e XMLEncoder, porém estou com problemas com algumas classes (instantiationException)
|
"A Imaginação é mais importante que o Conhecimento"
Albert Einstein |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 10:30:24
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Pelo jeito você quer fazer um SSO, certo?
Qual container você está usando? JBoss?
Porque se você duplicou a classe na outra app, pode ser que ele esteja usando o mesmo classloader para as duas aplicações e aí considera como classes diferentes e não como a mesma.
O ideal é, no login, criar um Cookie no cliente, e verificar se está logado peloa cookie, e não ficar enviando login pra cada app diferente.
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 10:30:31
|
LuizClaudio
JavaEvangelist
![[Avatar]](/images/avatar/a9cf46a38a9b05e959f33215e5cdc38a.png)
Membro desde: 03/04/2006 21:50:51
Mensagens: 388
Offline
|
O Grande Bé wrote:LuizClaudio, vc quis dizer q pensou q eu tinha parameters.
Não estava falando atributos do objeto que vc quer passar, mas como vc falou que é login num vai rolar vc ter um endereço tipo:
http://seilah.com.br/app?user=meu_user&senha=minha_senha
|
"Porque Deus amou o mundo de tal maneira que deu seu filho unigênito para que todo aquele que nele crê não pereça, mas tenha vida eterna." João 3.16 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 28/08/2006 14:41:16
|
Rafael Rossignol
Java Ninja
![[Avatar]](/images/avatar/c8a869974092410b06e66.gif)
Membro desde: 17/02/2004 09:26:58
Mensagens: 259
Offline
|
Consegui contornar este problema serializando objeto inteiro e depois refazendo ele.
Criei dois servlets q fazem uma ponte
em um aplicativo um servlet de saida q encoda o objeto
e no outro um servlet de entrada
só q é estranho pois eu consegui recuperar o objeto setei na sessão pelo servlet, mas qdo tento recupera-lo depois não está mais lá.
|
"A Imaginação é mais importante que o Conhecimento"
Albert Einstein |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2006 08:57:54
|
LuizClaudio
JavaEvangelist
![[Avatar]](/images/avatar/a9cf46a38a9b05e959f33215e5cdc38a.png)
Membro desde: 03/04/2006 21:50:51
Mensagens: 388
Offline
|
Estranho....mas agora o problema é outro né? Essa vida de programador, sai duma fria pra entrar numa gelada.... bem que minha mãe falava, filho vai ser advogado eheheheheh num faço idéia do que pode ser, ainda mais sem ver o código, entretanto, posso dizer que eu uso o eclipse Web Tool pra debugar esse tipo de coisa..
|
"Porque Deus amou o mundo de tal maneira que deu seu filho unigênito para que todo aquele que nele crê não pereça, mas tenha vida eterna." João 3.16 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2006 10:19:52
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
Você quer um SSO (Login único)? Porque complicar?
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/08/2006 22:04:02
|
edpipole
JavaTeenager
Membro desde: 29/03/2005 14:53:51
Mensagens: 165
Offline
|
meu....
procura sobre "crossContext tomcat" no nosso amigo google que ele vai ensinar pra vc...
na pratica vc tem q colocar o parametro crosscontext no server.xml do tomcat, com isso sera possivel vc ter acesso as sessões de outras aplicações.
abs, esse e o caminho das pedras.
espero ter ajudado...
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2007 09:18:20
|
micheldavid
HelloWorld
Membro desde: 06/03/2007 09:04:38
Mensagens: 10
Offline
|
Você pode criar um jar e colocar na pasta shared/lib ... estes jars são carregados apenas uma vez durante a execução do tomcat (outros servidores tem métodos diferentes para carregar bibliotecas compartilhadas).
Neste jar vc deve criar algo parecido com um Map, mas, singleton.
Futuramente pode até serializar e desserializar os dados do Map para manter as sessões autenticadas após reiniciar a aplicação, e também será necessário caso vc faça uso de um cluster.
Sobre o problema de serialização, que lança uma "InstantiationException", ocorre quando você não tem um construtor sem parâmetros para a classe.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 06/03/2007 10:38:33
|
danieldestro
Moderador
![[Avatar]](/images/avatar/a5bfc9e07964f8dddeb95fc584cd965d.png)
Membro desde: 04/09/2002 17:26:16
Mensagens: 6667
Localização: São Paulo / Catanduva
Offline
|
POG* DETECTED!
* Programação Orientada a Gambiarra
|
gotjava?
Doe sangue
What You See Is What You Get!
Apostilas de Java grátis!
RefsCALL - Bandeira Eletrônica para Árbitro de Futebol |
|
|
 |
|
|