2016-11-13 17 views
0

私はMuleを初めて使用しており、消費するためにあなたの助けが必要です。私は、1つの入力を受け取り、下記のように1つの出力を提供する第三者SOAPサービスを持っています。どのようにしてMULEから呼び出すことができますか?それはパススループロキシですので、必要な変換が必要です。ミュールからそれを呼び出すだけです。Mule ESBでSOAP Webserviceを使用する方法

要求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con="http://test.co.nz/controlkeysdetails"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <con:getControlKeyDetail xmlns:con="http://test.co.nz/controlkeysdetails"> 
     <con:keyCode>M2M_IN_PRODUCT_CODE</con:keyCode> 
     </con:getControlKeyDetail> 
    </soapenv:Body> 
</soapenv:Envelope> 

応答:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soapenv:Body> 
     <ControlKeyDetailResponse xmlns="http://test.co.nz/controlkeysdetails"/> 
    </soapenv:Body> 
</soapenv:Envelope> 

ミュールコード:

<?xml version="1.0" encoding="UTF-8"?> 

<mule xmlns:ws="http://www.mulesoft.org/schema/mule/ws" xmlns:dw="http://www.mulesoft.org/schema/mule/ee/dw" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" 
    xmlns:spring="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd 
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd 
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd 
http://www.mulesoft.org/schema/mule/ws http://www.mulesoft.org/schema/mule/ws/current/mule-ws.xsd 
http://www.mulesoft.org/schema/mule/ee/dw http://www.mulesoft.org/schema/mule/ee/dw/current/dw.xsd"> 
    <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/> 
    <ws:consumer-config name="Web_Service_Consumer" service="DSS_ControlKeyDetailsProxy" port="DSS_ControlKeyDetailsProxyHttpSoap11Endpoint" serviceAddress="http://esb1.test.2degreesmobile.co.nz:8280/services/DSS_ControlKeyDetailsProxy.DSS_ControlKeyDetailsProxyHttpSoap11Endpoint" wsdlLocation="http://hnzclakl194:8280/services/DSS_ControlKeyDetailsProxy?wsdl" doc:name="Web Service Consumer"/> 
    <flow name="soapwebserviceFlow"> 
     <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/> 
     <set-payload value="{'con:keyCode':'M2M_IN_PRODUCT_CODE'}" doc:name="Set Payload"/> 
     <ws:consumer config-ref="Web_Service_Consumer" operation="getControlKeyDetail" doc:name="Web Service Consumer"/> 
    </flow> 
</mule> 

すべてのヘルプははるかに高く評価されます。

返信ありがとうございますAnirban。私はコードを更新しましたが、 "org.apache.cxf.interceptor.Fault:COULD_NOT_READ_XML_STREAM"エラーが発生しました。私は、設定されたペイロード構成要素であってもよい<ws:consumer/>前に要求1.Putペイロード

答えて

0

を設定する方法がわからない: -

<con:getControlKeyDetail xmlns:con="http://test.co.nz/controlkeysdetails"> 
    <con:keyCode>M2M_IN_PRODUCT_CODE</con:keyCode> 
</con:getControlKeyDetail> 

2. <ws:consumer/><echo-component/>を削除し、<mulexml:dom-to-xml-transformer/>何かに置き換えます -

<flow name="soapwebserviceFlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/" doc:name="HTTP"/> 
    <ws:consumer config-ref="Web_Service_Consumer" operation="getControlKeyDetail" doc:name="Web Service Consumer"/> 
    <mulexml:dom-to-xml-transformer doc:name="DOM to XML"/> 
</flow> 
関連する問題