以下のプロキシサービスがプロキシサービスによって呼び出されています。WSO2 ESBペイロードメッセージを保存
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="seq_invchk_slpa_in" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<log level="custom">
<property name="STATUS::" value="***************************"/>
</log>
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:hnb="http://10.104.74.93/hnb"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<hnb:CheckInvoiceDetails soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<invoice_no xsi:type="xsd:string">$1</invoice_no>
</hnb:CheckInvoiceDetails>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg evaluator="xml" expression="$ctx:invoice_no"/>
</args>
</payloadFactory>
<property name="ContentType" scope="axis2" type="STRING" value="text/xml"/>
<header name="Action" scope="default" value="CheckInvoiceDetails"/>
<property name="SOAPAction" scope="transport" type="STRING" value="CheckInvoiceDetails"/>
<send>
<endpoint key="gov:INVCHK/SLPA/endpoints/invchk_slpa_validation_ep.xml"/>
</send>
</sequence>
ツール(SOAP UI)から呼び出しても問題なく動作します。
しかし、システムから電話をかけるときに問題が発生します。私はこれまで をトレースしているが、正しい通話中にペイロード工場メッセージが
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hnb="http://10.104.74.93/hnb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<hnb:CheckInvoiceDetails soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<invoice_no xmlns="http://ws.apache.org/ns/synapse" xsi:type="xsd:string">17231374967185</invoice_no>
</hnb:CheckInvoiceDetails>
</soapenv:Body>
</soapenv:Envelope>
誤った呼び出しが行われた場合、ペイロードメッセージが
<?xml version="1.0" encoding="UTF-8"?>
<hnb:CheckInvoiceDetails xmlns:hnb="http://10.104.74.93/hnb" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<invoice_no xmlns="http://ws.apache.org/ns/synapse" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">17231374967185</invoice_no>
</hnb:CheckInvoiceDetails>
としてESBの外に出るとして送信されています私は問題を引き起こすと思います。私は間違った通話中に、クライアントから取得応答が
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap .org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode xsi:type="xsd:string">SOAP-ENV:Client</faultcode>
<faultstring xsi:type="xsd:string">Operation '' is not defined in the WSDL for this service</faultstring>
<detail xsi:type="xsd:string" />
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
どのように私はそれがあるとして、SOAPメッセージを保存し、システムによって呼び出されたときにそれを送ることができます。
はなぜすべてのヘルプは非常に高く評価されます <hnb:CheckInvoiceDetails xmlns:hnb="http://10.104.74.93/hnb" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
メソッドレベルにまで混入石鹸名前空間です。
プロパティ にプロパティを保存します。その後、豊かなものを使用する必要があるときに復元します。 –
simar
コメントをお寄せいただきありがとうございますが、メッセージの変更を送信する際に問題がありますが、なぜソープ名スペースが追加されているのかについての手掛かりはありますか? – Yasothar
PayloadFactoryメディエータはメッセージ本文の内容を変更する予定です。なぜあなたは封筒、ヘッダー、ボディータグを持っていますか? WSOESBは、トランスポートを通じてメッセージを送信する前にメッセージ自体にエンベロープを追加します。 – simar