| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2011 13:11:18
|
Attila
What is classpath?
Membro desde: 18/12/2006 12:12:00
Mensagens: 5
Localização: Guarujá
Offline
|
Pessoal,
Estamos versionando um sistema existente, no qual utilizamos o JBOSS como servidor web.
Dai foi solicitado que fosse criado uma Servlet (AppRouter.ear) para receber uma requisição e dependendo da versão ativa, direcionará para outro contexto(arquivo-v1.ear).
Tentei utilizar o RequestDispatcher.forward() para direcionar, mas pelo que li não é possível realizar o direcionamento para outra aplicação.
Dai utilizei também o Response.sendRedirect(), consegui direcionar, porém como se trata de um Webservice SOAP, estou tendo dificuldades com relação aos dados do request/response para consumir este Webservice.
Alguém tem alguma sugestão para esta solução?
Abraço!
|
Att,
João Attila |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2011 13:20:47
|
jmag
JavaGuru
Membro desde: 10/09/2007 09:54:37
Mensagens: 216
Localização: São Paulo, SP
Offline
|
Bom a um tempo atrás precisei criar um client para consumir serviços SOAP do JBoss AS 6, a classe é meio amarrada, mas funcionou para o meu Objetivo. Vê ai se te ajuda, o Bean é passado como parâmetro. E o WSDL é passado como parametro tambem.. urlService = blabla.?wsdl blaService = clientFactory.createFactory(urlService); hehe lendo melhor nao era isso que vc tava perguntando rsrs,mas fica ai se servir pra alguma coisa.. abraço!
This message was edited 3 times. Last update was at 23/08/2011 13:30:36
|
Mauricio Magnani
JBoss Certified Application Administrator
https://jbossdivers.wordpress.com/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2011 13:44:04
|
Attila
What is classpath?
Membro desde: 18/12/2006 12:12:00
Mensagens: 5
Localização: Guarujá
Offline
|
Então, não me serve bem isso pois nesta aplicação eu não terei as classes dos serviços.
A idéia é assim: O cara vai acessar um link http://localhost:8180/SistemaRouter/Servlet?service=Corretor
Dai na servlet eu devo direcionar esse request para um serviço localizado em outra aplicação
http://localhost:8180/SistemaServico/Corretor
É possível fazer isso? Há alguma forma melhor?
|
Att,
João Attila |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2011 14:27:38
|
jmag
JavaGuru
Membro desde: 10/09/2007 09:54:37
Mensagens: 216
Localização: São Paulo, SP
Offline
|
E ai cara... bom nunca precisei fazer isso, mas acredito que sim hein, e faria do mesmo jeito que está fazendo rsrs...
Agora se nao deu certo assim, realmente nao sei o que fazer e precisaria dar um pesquisada...
abraço!
|
Mauricio Magnani
JBoss Certified Application Administrator
https://jbossdivers.wordpress.com/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 23/08/2011 18:04: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
|
Acho que usar um ESB (Enterprise service Bus) resolve seu caso.
Mas se não quiser usar de tal recurso, que não é simples, constroi um Servlet que atua como proxy entre a requisição e seu webservice.
|
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) 24/08/2011 09:54:19
|
Attila
What is classpath?
Membro desde: 18/12/2006 12:12:00
Mensagens: 5
Localização: Guarujá
Offline
|
Fiz uma explicação melhor para deixar mais claro o problema...  1. A idéia original era a de criar uma Servlet para receber as requisições de um browser/cliente, verificar qual serviço deve ser chamado e de qual versão e encaminhar o cliente para a URL do Webservice conforme EAR da versão correta utilizando o método forward() da classe RequestDispatcher. Este método simplesmente direciona no servidor a requisição para outra Servlet/Webservice sem que o cliente/browser saiba que houve o redirecionamento, e o segundo componente é o responsável de retornar para a o cliente a resposta da requisição inicial. - Fizemos o PoC (Prova de Conceito) utilizando na Servlet o método citado, porém constatamos que não há possibilidade de utilizar este método quando direcionamos para Componentes de diferentes aplicações, tanto utilizando endereço relativo ("../AutoModular/v1001v") como endereços absolutos ("http://server/AutoModular/v1001/"). 2. Após o insucesso da idéia original, foi testado o uso do método sendRedirect() da classe HttpServletResponse para realizar o mesmo processo do item 1. - Fizemos o PoC (Prova de Conceito) utilizando na Servlet o método citado passando o endereço absoluto ("http://server/AutoModular/v1001/"), o direcionamento começou a funcionar, porém constatamos que neste direcionamento a Servlet retorna a requisição para o cliente/brower no Header apenas o novo endereço e o browser/cliente é quem é o responsável por realizar uma nova requisição. Desta forma os dados que foram encaminhados inicialmente pelo cliente são perdidos, e na segunda requisição feita não ocorre o envio destes dados. Outro ponto negativo aqui é que existem 2 requisições por parte do cliente o que derruba a performance.
This message was edited 2 times. Last update was at 24/08/2011 09:56:51
|
Att,
João Attila |
|
|
 |
|
|