0
私はWSO2 ESB(4.8.1)を使用しており、「期待される出力」ブロックに示すように出力を取得する方法を知りたいと思います。WSO2 ESB - プロキシサービスの出力メッセージコンテンツの変更
ありがとうございます。
プロキシサービスの定義:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="DATA_WS"
transports="https,http"
statistics="disable"
trace="enable"
startOnLoad="true">
<target>
<inSequence>
<switch xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
source="local-name(/*/*/*[1])">
<case regex="getSavProducts">
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:dat="http://ws.wso2.org/dataservice">
<soapenv:Header/>
<soapenv:Body>
<dat:getSavProducts/>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args/>
</payloadFactory>
<log level="custom">
<property name="operation" value="getSavProducts"/>
</log>
<send>
<endpoint>
<address uri="http://dssserver:9783/services/DATA_WS/getSavProducts"/>
</endpoint>
</send>
</case>
<default/>
</switch>
</inSequence>
<outSequence>
<iterate xmlns:m="http://ws.wso2.org/dataservice"
id="iter1"
expression="//m:Entries/m:Entry">
<target>
<sequence>
<log level="custom">
<property name="output111" expression="//m:PRODUCT_DESC/text()"/>
</log>
<send/>
</sequence>
</target>
</iterate>
</outSequence>
</target>
<publishWSDL key="gov:/IB/DATA_WS.wsdl"/>
<parameter name="useOriginalwsdl">true</parameter>
<parameter name="disableOperationValidation">true</parameter>
<description/>
</proxy>
これは、あるサービスを呼び出すときに私が手に出力
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<Entry xmlns="http://ws.wso2.org/dataservice">
<PRODUCT_CODE>2</PRODUCT_CODE>
<SUB_PRODUCT_CODE>20</SUB_PRODUCT_CODE>
<PRODUCT_DESC>TEST SUB PRODUCT</PRODUCT_DESC>
<STATUS>A</STATUS>
<PRODUCT_CATEGORY>G</PRODUCT_CATEGORY>
<PRODUCT_NAME>General</PRODUCT_NAME>
<CUR_CODE>GBP</CUR_CODE>
<CHANNEL>USSD</CHANNEL>
</Entry>
</soapenv:Body>
</soapenv:Envelope>
ログ
TID: [0] [ESB] [2016-10-31 10:39:33,761] INFO {org.apache.synapse.mediators.builtin.LogMediator} - output111 = TEST SUB PRODUCT {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2016-10-31 10:39:33,761] INFO {org.apache.synapse.mediators.builtin.LogMediator} - output111 = TEST SUB PRODUCT 2 {org.apache.synapse.mediators.builtin.LogMediator}
TID: [0] [ESB] [2016-10-31 10:39:33,768] INFO {org.apache.synapse.mediators.builtin.LogMediator} - output111 = TEST SUB PRODUCT 3 {org.apache.synapse.mediators.builtin.LogMediator}
の予想される出力
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:getSavProductsResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="DATA_WS">
<return xsi:type="ns2:dbconncyberfin_DbtSavProdcutTab" xmlns:ns2="http://dbconncyberfin/DATA_WS.xsd">
<array xsi:type="ns3:Array" ns3:arrayType="ns2:dbconncyberfin_DbtSavProdcutUser[16]" xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/">
<item xsi:type="ns2:dbconncyberfin_DbtSavProdcutUser">
<channel xsi:type="xsd:string">USSD</channel>
<curCode xsi:type="xsd:string">EUR</curCode>
<productCategory xsi:type="xsd:string">G</productCategory>
<productCode xsi:type="xsd:string">2</productCode>
<productDesc xsi:type="xsd:string">TEST SUB PRODUCT</productDesc>
<productName xsi:type="xsd:string">General</productName>
<status xsi:type="xsd:string">A</status>
<subProductCode xsi:type="xsd:string">20</subProductCode>
</item>
<item xsi:type="ns2:dbconncyberfin_DbtSavProdcutUser">
<channel xsi:type="xsd:string">USSD</channel>
<curCode xsi:type="xsd:string">USD</curCode>
<productCategory xsi:type="xsd:string">G</productCategory>
<productCode xsi:type="xsd:string">2</productCode>
<productDesc xsi:type="xsd:string">TEST SUB PRODUCT 2</productDesc>
<productName xsi:type="xsd:string">General</productName>
<status xsi:type="xsd:string">A</status>
<subProductCode xsi:type="xsd:string">54</subProductCode>
</item>
<item xsi:type="ns2:dbconncyberfin_DbtSavProdcutUser">
<channel xsi:type="xsd:string">USSD</channel>
<curCode xsi:type="xsd:string">SLR</curCode>
<productCategory xsi:type="xsd:string">G</productCategory>
<productCode xsi:type="xsd:string">1</productCode>
<productDesc xsi:type="xsd:string">TEST SUB PRODUCT 3</productDesc>
<productName xsi:type="xsd:string">General</productName>
<status xsi:type="xsd:string">A</status>
<subProductCode xsi:type="xsd:string">00</subProductCode>
</item>
</array>
</return>
</ns1:getSavProductsResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
あなたのプロキシは、クライアントにのみ応答を送信する必要がありますが、 は、あなたの中に反復内で使用されていますoutSequence ... –
xslを使用してxslt mediatorを適用して適用することができますあなたが必要とする変換 –