Este documento descreve como configurar um proxy HTTP dinâmico no Mule usando mapeamentos de contexto para rotas de solicitações para diferentes servidores. Ele explica como usar um mapa para mapear URLs de entrada para URLs de saída e como recuperar informações do servidor usando um enriquecedor. Também mostra como testar o proxy enviando solicitações e observando as respostas e saídas do console.
Como criar um http proxy dinamico com mule parte 3
1. Como criar um HTTP proxy dinamico com Mule –
Parte 3
Observe que:
• Um mapa com o nome "pathToServerAndPortMapping" é
configurado usando XML da Primavera.
Este mapa contém o mapeamento entre contexto e
caminho relativo de um URL para o servidor para que as
solicitações devem ser encaminhadas, como discutido
acima.
• O mapa contém uma entrada para "serviços /
GreetingService? Wsdl".
Como discutido na seção sobre as limitações do programa
de exemplo, que actualmente não processa parâmetros
HTTP. Também queria mais do que um mapeamento
simples, a fim de tornar o exemplo mais interessante.
• Há um <set-property> definindo a propriedade
"outboundPath" elemento imediatamente após o ponto de
extremidade HTTP de entrada.
A expressão um pouco complicado no atributo valor é
usado para remover a parte âmbito de pedidos HTTP de
entrada. A parte contexto do proxy HTTP dinâmica pode
ser alterada sem a necessidade de modificações da
expressão. No entanto, se você quiser adicionar uma outra
parte para a URL que não devem ser considerados ao
determinar qual servidor de transmitir um pedido para, esta
expressão precisa ser modificado.
• Um <enricher> é usado para recuperar a instância correta
da classe ServerInformationBean.
2. Em vez de usar um script Groovy, o enricher deve realizar
uma consulta de banco de dados.
Além disso, não há erro de manuseamento para o caso em
que não existe informação disponível para o servidor de
uma chave especial.
• Há um <choice> elemento que contém vários pontos de
extremidade HTTP de saída.
Os terminais de saída de HTTP apenas diferem na medida
em que o atributo método está em causa. A razão para ter
que usar o <choice> elemento e vários pontos de
extremidade de saída HTTP é que Mule não permite
expressões para ser inserido no atributo método.
Testar o programa exemplo
O programa de exemplo agora está completo e pode ser
iniciado clicando com o projeto no IDE e selecionando
Executar como -> Aplicação Mule.
Quando a instância Mule iniciou-se, tente emitir um reques
para a seguinte URL em um navegador de sua escolha:
http://localhost:8182/services/GreetingService?wsdl
Você deverá ver o WSDL do serviço de saudação.
Usando soapUI, tente enviar um pedido para o serviço de
saudação. Você deve receber uma saudação contendo a
data e hora atual.
Em seguida, adicionar um novo ponto de extremidade para
o pedido em soapUI e insira a seguinte URL:
3. http://localhost:8981/dynamicHttpProxy/services/GreetingS
ervice
Em seguida, enviar o pedido novamente a partir soapUI.
Você deve receber o mesmo tipo de resposta como quando
se comunicar diretamente com o serviço de saudação:
Se examinar o log do console no IDE, uma saída
semelhante ao das quatro linhas seguintes devem estar
presentes (se não, tente alterar o nível de registro para erro
e repetir enviar um pedido de novo):
... Outbound path = services/GreetingService
... Server address = localhost
... Server port = 8182
... Server name = MyServer
Em um navegador, emitir um pedido de WSDL do serviço
de saudação com a seguinte URL:
http://localhost:8981/dynamicHttpProxy/services/GreetingS
ervice
As quatro linhas de saída do console serrados mais cedo
agora muda para:
4. ... Outbound path = services/GreetingService?wsdl
... Server address = localhost
... Server port = 8182
... Server name = SomeOtherServer
A partir disso podemos ver que diferentes mapeamentos de
entrar em vigor, dependendo da parte de saída da URL.