我在WSO2 ESB上有一個有效負載有問題。有效負載解析錯誤(Soap 1.1 vs Soap 1.2)
當我發送SOAP 1.1消息時,我的端點正確應答。
我做了一個代理,它接受參數並將其轉換爲SOAP。然後通過我的端點發送它。
的問題是正確形成我的信息(我是這麼認爲的),但我一直有這樣的錯誤:
ERROR - RelayUtils Error while building Passthrough stream org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Content is not allowed in prolog.
這似乎可能是某種形式的內容類型錯誤,如果我檢查這在Slashdot :WSO2 ESB Content is not allowed in prolog exception in a OutSecuence但即使我在端點定義的格式=「soap11」,似乎信封爲SOAP 1.2
我代理的定義是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="Test11"
transports="https,http"
statistics="disable"
trace="disable"
startOnLoad="true">
<target>
<inSequence>
<payloadFactory media-type="xml">
<format>
<ns2:QueryReqWS xmlns:ns2="http://hiddenUrl.com/">
<TOTO xmlns="urn:hl7-org:v3"
ITSVersion="XML_1.0"
xmlns:mif="urn:hl7-org:v3/mif"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:hl7-org:v3 urn:hl7-org:v3 file:/schemas/TOTO.xsd">
<id root="1234"/>
...
<controlActEvent classCode="CACT" moodCode="EVN">
...
<queryByParameter>
<queryId root="456"/>
<responseModalityCode code="R"/>
<parameterList>
<Gender>
<value code="$1" >
</value>
</Gender>
<BirthDate>
<value xsi:type="TS" specializationType="TS.FULLDATE" value="$2"/>
</BirthDate>
<Name>
<value>
<given qualifier="IN">$3</given>
<family>$4</family>
</value>
</Name>
</parameterList>
</queryByParameter>
</controlActEvent>
</TOTO>
</ns2:QueryReqWS>
</format>
<args>
<arg xmlns:ns2="http://hiddenUrl.com/"
evaluator="xml"
expression="string(//ns2:testRequest/ns2:person/ns2:gender)"/>
<arg xmlns:ns2="http://hiddenUrl.com/"
evaluator="xml"
expression="string(//ns2:testRequest/ns2:person/ns2:birthday)"/>
<arg xmlns:ns2="http://hiddenUrl.com/"
evaluator="xml"
expression="string(//ns2:testRequest/ns2:person/ns2:lastname)"/>
<arg xmlns:ns2="http://hiddenUrl.com/"
evaluator="xml"
expression="string(//ns2:testRequest/ns2:person/ns2:firstname)"/>
</args>
</payloadFactory>
<log level="full"/>
</inSequence>
<outSequence>
<log level="full"/>
<send/>
</outSequence>
<faultSequence/>
<endpoint>
<address uri="http:/test/testMessage/Unknown" format="soap11">
</endpoint>
</target>
<description/>
</proxy>
樣本消息如下:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<ns2:testRequest xmlns:ns2="http://com.hiddenurl/">
<ns2:person>
<ns2:gender>M</ns2:gender>
<ns2:lastname>Man</ns2:lastname>
<ns2:firstname>Spider</ns2:firstname>
<ns2:birthday>20150301</ns2:birthday>
</ns2:person>
</ns2:testRequest>
</soap:Body>
</soap:Envelope>
SOAP 1.1示例消息:
<id root="1234"/>
...
<controlActEvent classCode="CACT" moodCode="EVN">
...
<queryByParameter>
<queryId root="456"/>
<responseModalityCode code="R"/>
<parameterList>
<BirthDate>
<value xsi:type="TS" specializationType="TS.FULLDATE" value="20150301"/>
</BirthDate>
<Gender>
<value code="M" >
</value>
</Gender>
<Name>
<value>
<given qualifier="IN">Spider</given>
<family>Man</family>
</value>
</Name>
</parameterList>
</queryByParameter>
</controlActEvent>
</TOTO>
</ns2:QueryReqWS>
</soapenv:Body>
</soapenv:Envelope>
非常感謝你的幫助。
謝謝,我將能夠調試的問題,因爲如果我使用肥皂傳遞到SOAP UI中的終點,我得到了一個異常。我會隨時向您通報我的進展情況。 – JFPicard
我會接受這個答案,因爲您允許我比較來自SOAPUI的有效載荷和WSO2有效載荷。我錯過了一個我添加的標題: –
JFPicard