Consumindo SOAP WSDL-First Service
Até agora vimos como criar e consumir Webservices SOAP quando temos
controle sobre a base de código. No entanto, na maioria dos casos, terá que
consumir a partir de um serviço de WSDL já existente. Mule Studio torna este
trabalho muito fácil com a ajuda de uma ferramenta wsdl2java embutido.
Vamos explorar como podemos conseguir isso.
No final deste tutorial, teríamos aprendido a
1. Gerar classes de mensagens publicitárias Java a partir de um WSDL
existente
2. Criar cliente CXF JAX-WS e especificar atributos do cliente Webservice
3. Passe carga apropriado para invocar esse webservice
4. Criar um sub-fluxo e invocá-lo por meio de fluxo de referência a partir de um
fluxo principal
5. Converter objeto Java em XML e exibir no navegador
Abaixo são os dois fluxos vamos tentar construir em poucos minutos seguintes.
Usaremos o seguinte webservice público que traduz um endereço IP em
informação geográfica.
http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl
Este webservice leva em dois parâmetros e retorna informações Geo do
endereço IP correspondente. Opcionalmente testar a funcionalidade
Webservice usando SOAP UI. Vamos usar a porta "IP2GeoSoap" e operação
"resolveip" desta WSDL.
Abrir projeto "Mule Training" em Mule Studio. Criar "soapclient" fluxo Mule, se
já não estiver presente. Arraste e solte um elemento de fluxo Sub sobre a lona.
Opcionalmente dar-lhe um nome significativo - resolveIPFlow.
Arraste e solte um componente de SOAP em "resolveIPFlow". Clique em
"Gerar WSDL" de propriedades do componente SOAP. Isso fará com que
diálogo para gerar as classes Java wrapper a partir WSDL.
Digite WSDL URL de IP2Geo Webservice
("http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl") e qualquer nome do pacote
que você gostaria. Neste exemplo, classes de mensagens publicitárias Java
será gerado no âmbito do pacote "training.soap.ip2geo". Clique em OK. Mule
Studio usa ferramenta wsdl2java nos bastidores para gerar as classes Java.
Certifique-se de classes de mensagens publicitárias Java são gerados como
mostrado abaixo. IP2Geo.java é a classe de serviço Java, teremos de usar em
etapas subsequentes. Alterar a operação de "cliente JAX-WS" em propriedades
do componente SOAP. Enter "resolveip" para Websevice Operação ",
IP2GeoSoap" para a porta e "training.soap.ip2geo.IP2Geo" para a classe
Cliente. Estes valores são obtidos a partir de WSDL.
componente SOAP converte mula de carga útil em SOAP XML que precisa ser
lançado para endpoint HTTP SOAP. Este ponto final é obtido a partir definição
WSDL, como mostrado abaixo.
Limpar Host, Porta e os campos de caminho de HTTP. Em seguida, a partir do
separador "Avançado", digite HTTP endpoint copiamos no passo anterior.
Finally, we need to send two parameters to this webservice. Mule expects these
parameters in an object array. Mule expression language is used to build array
expression: #[{‘173.194.36.39’, ”}]. Here, ‘173.194.36.39’ maps to “ipAddress”
parameter and empty value for “licenseKey” parameter. This completes
“resolveIPFlow” sub flow.
Lets create main flow that refers to this subflow. Drag and drop another HTTP
endpoint to create another flow – “soapclientFlow2”. Specify “8082” as Port and
“soapclient/wsdlfirst” for Path.
Drag and drop a “Flow Reference” element next to HTTP. Select
“resolveIPFlow” for Flow Name. Sub flow is useful when we want to refer to re-
usable piece of logic from multiple locations. More about sub/child flows can be
read from here.
The subflow “resolveIPFlow” would return Java object
“training.soap.ip2geo.IPInformation”. Lets drag and drop “Object to XML”
transformer next to the Flow Reference to transform java object into XML. Mule
uses XStream for this conversion.
Save and run project. Access http://localhost:8082/soapclient/wsdlfirst to see
result of Webservice.
Consumindo soap wsdl

Consumindo soap wsdl

  • 1.
    Consumindo SOAP WSDL-FirstService Até agora vimos como criar e consumir Webservices SOAP quando temos controle sobre a base de código. No entanto, na maioria dos casos, terá que consumir a partir de um serviço de WSDL já existente. Mule Studio torna este trabalho muito fácil com a ajuda de uma ferramenta wsdl2java embutido. Vamos explorar como podemos conseguir isso. No final deste tutorial, teríamos aprendido a 1. Gerar classes de mensagens publicitárias Java a partir de um WSDL existente 2. Criar cliente CXF JAX-WS e especificar atributos do cliente Webservice 3. Passe carga apropriado para invocar esse webservice 4. Criar um sub-fluxo e invocá-lo por meio de fluxo de referência a partir de um fluxo principal 5. Converter objeto Java em XML e exibir no navegador Abaixo são os dois fluxos vamos tentar construir em poucos minutos seguintes. Usaremos o seguinte webservice público que traduz um endereço IP em informação geográfica. http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl
  • 2.
    Este webservice levaem dois parâmetros e retorna informações Geo do endereço IP correspondente. Opcionalmente testar a funcionalidade Webservice usando SOAP UI. Vamos usar a porta "IP2GeoSoap" e operação "resolveip" desta WSDL.
  • 3.
    Abrir projeto "MuleTraining" em Mule Studio. Criar "soapclient" fluxo Mule, se já não estiver presente. Arraste e solte um elemento de fluxo Sub sobre a lona. Opcionalmente dar-lhe um nome significativo - resolveIPFlow. Arraste e solte um componente de SOAP em "resolveIPFlow". Clique em "Gerar WSDL" de propriedades do componente SOAP. Isso fará com que diálogo para gerar as classes Java wrapper a partir WSDL. Digite WSDL URL de IP2Geo Webservice ("http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl") e qualquer nome do pacote que você gostaria. Neste exemplo, classes de mensagens publicitárias Java será gerado no âmbito do pacote "training.soap.ip2geo". Clique em OK. Mule
  • 4.
    Studio usa ferramentawsdl2java nos bastidores para gerar as classes Java. Certifique-se de classes de mensagens publicitárias Java são gerados como mostrado abaixo. IP2Geo.java é a classe de serviço Java, teremos de usar em etapas subsequentes. Alterar a operação de "cliente JAX-WS" em propriedades do componente SOAP. Enter "resolveip" para Websevice Operação ", IP2GeoSoap" para a porta e "training.soap.ip2geo.IP2Geo" para a classe Cliente. Estes valores são obtidos a partir de WSDL. componente SOAP converte mula de carga útil em SOAP XML que precisa ser lançado para endpoint HTTP SOAP. Este ponto final é obtido a partir definição
  • 5.
    WSDL, como mostradoabaixo. Limpar Host, Porta e os campos de caminho de HTTP. Em seguida, a partir do separador "Avançado", digite HTTP endpoint copiamos no passo anterior.
  • 6.
    Finally, we needto send two parameters to this webservice. Mule expects these parameters in an object array. Mule expression language is used to build array expression: #[{‘173.194.36.39’, ”}]. Here, ‘173.194.36.39’ maps to “ipAddress” parameter and empty value for “licenseKey” parameter. This completes “resolveIPFlow” sub flow.
  • 7.
    Lets create mainflow that refers to this subflow. Drag and drop another HTTP endpoint to create another flow – “soapclientFlow2”. Specify “8082” as Port and “soapclient/wsdlfirst” for Path. Drag and drop a “Flow Reference” element next to HTTP. Select “resolveIPFlow” for Flow Name. Sub flow is useful when we want to refer to re- usable piece of logic from multiple locations. More about sub/child flows can be read from here.
  • 8.
    The subflow “resolveIPFlow”would return Java object “training.soap.ip2geo.IPInformation”. Lets drag and drop “Object to XML” transformer next to the Flow Reference to transform java object into XML. Mule uses XStream for this conversion. Save and run project. Access http://localhost:8082/soapclient/wsdlfirst to see result of Webservice.