Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MuleSoft WSDL conectores

Alex teles
August 30, 2016

MuleSoft WSDL conectores

MuleSoft WSDL conectores

Alex teles

August 30, 2016
Tweet

More Decks by Alex teles

Other Decks in Education

Transcript

  1. WSDL Conectores  Se você pretende conectar a um serviço

    web externo que expõe um arquivo WSDL, o conector recomendado para utilizar é o consumidor do serviço Web .
  2. CXF  A Axis e CXF transporta fornecer conectores WSDL

    que podem ser usados ​​para chamar serviços Web remotos através da obtenção da WSDL serviço. Mule cria um proxy dinâmico para o serviço e, em seguida, invoca-lo. A ferramenta mais fácil para fazer isso, no entanto, é o consumidor do serviço Web .
  3. Endpoints WSDL genéricos  Um ponto final WSDL permite invocar

    facilmente serviços web sem gerar um cliente . Na inicialização, ele lê o WSDL para determinar como chamar o serviço web remoto durante a execução. Quando uma mensagem é enviada através do ponto final WSDL, é capaz de construir uma mensagem SOAP usando a carga da mensagem e seu conhecimento da carga formato esperado do WSDL.
  4.  Você deve fornecer a URL completa para o WSDL

    do serviço para invocar, e você deve fornecer ummethodparâmetro que diz Mule qual operação para invocar sobre o serviço:
  5.  O URL WSDL é anexado com o wsdl:prefixo. Mule

    verifica o seu caminho de classe para ver se há um provedor de WSDL que ele pode usar para criar um proxy do cliente a partir do WSDL. Mule suporta tanto Eixo e CXF como prestadores de WSDL. Se você quiser usar um específico, você pode especificá-lo na URL da seguinte forma: 
  6.  Em geral, você deve usar o endpoint CXF WSDL.

    A única limitação do provedor CXF WSDL é que ele não permite que você use primitivos não-Java (objetos que não são uma String, int, double, e assim por diante). Às vezes, a geração de WSDL Axis não funciona (namespaces incorretos são usados), de modo que você pode experimentar com cada um para ver qual funciona melhor.  Nota : Não existem transformadores específicos para definir em pontos finais WSDL.
  7. Especificando um local alternativo WSDL  Por padrão, o provedor

    WSDL olha para o seu WSDL, tomando o endereço de endpoint e anexando?wsdla ele. Com o transporte CXF, você tem a opção de especificar um local para o WSDL que é diferente do que especificado com o ?wsdlparâmetro. Isto pode ser útil nos casos em que o WSDL não está disponível uma forma normal, seja porque o mecanismo SOAP não fornece-o ou o prestador de não desejar expor o WSDL publicamente.
  8. Exemplo do CXF WSDL Endpoint  Este exemplo demonstra como

    tirar vários argumentos a partir da consola, invocar um serviço web, e imprimir a saída para a tela. Ele usa o Conversor de moeda serviço web em www.webservicex.net .  Este serviço requer dois argumentos: o "de" código de moeda eo "para" código de moeda. Quando o despachante CXF prepara argumentos para a invocação do serviço, ele espera encontrar a carga da mensagem de Object[] - isto é, uma matriz de objectos. No caso de o conversor de moeda, isso deve ser uma matriz de dois objetos - o "de" moeda eo "a" moeda.
  9.  Existem várias maneiras de construir essa matriz objeto, mas

    a maneira mais fácil é usar o transformador de costume StringToObjectArrayTransformer , o que traduz uma cadeia delimitada em uma matriz de objetos. No exemplo abaixo, você simplesmente digite uma String no formato de<fromCurrency>,<toCurrency>.
  10. XML Completo  <?xml version="1.0" encoding="UTF-8"?> <mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:spring="http://www.springframework.org/schema/beans"

    xmlns:stdio="http://www.mulesoft.org/schema/mule/stdio" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/stdio http://www.mulesoft.org/schema/mule/stdio/current/mule-stdio.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd"> <stdio:connector name="stdioConnector" promptMessage="Enter from and to currency symbols, separated by a comma:"/> <flow name="inputService"> <stdio:inbound-endpoint system="IN"/> <custom-transformer class="org.mule.transformer.simple.StringToObjectArray"> <spring:property name="delimiter" value=","/> </custom-transformer> <outbound-endpoint address="wsdl- cxf:http://www.webservicex.net/CurrencyConvertor.asmx?WSDL&method=Co nversionRate"/> <stdio:outbound-endpoint system="OUT"/> </flow> </mule>