WSO2:ESB:将接收到的数据(不是SOAP格式)传递到序列失败

WSO2:ESB:将接收到的数据(不是SOAP格式)传递到序列失败,wso2,wso2esb,Wso2,Wso2esb,我有一个RESTAPI(我们称之为MYTESTAPI1),它为一些数据调用第三方API。第三方API以以下格式返回数据 调用之后,当在上述API中调用新序列时,它工作正常 <wd:Report_Data xmlns:wd="Project_Export"> <wd:Report_Entry> <wd:referenceID>PR00001</wd:referenceID> <wd:projectName> Test Project1 &

我有一个RESTAPI(我们称之为MYTESTAPI1),它为一些数据调用第三方API。第三方API以以下格式返回数据

调用之后,当在上述API中调用新序列时,它工作正常

<wd:Report_Data xmlns:wd="Project_Export">
<wd:Report_Entry>
<wd:referenceID>PR00001</wd:referenceID>
<wd:projectName>
Test Project1
</wd:projectName>
<wd:Inactive>0</wd:Inactive>
<wd:Cost_Center_group>
<wd:Cost_Center_ID>CG1</wd:Cost_Center_ID>
</wd:Cost_Center_group>
<wd:Research_Budget_Remaining>0</wd:Research_Budget_Remaining>
<wd:Currency wd:Descriptor="AUD">
<wd:ID wd:type="WID">8a96ee707a264afe888d90ef93253305</wd:ID>
<wd:ID wd:type="Currency_ID">AUD</wd:ID>
<wd:ID wd:type="Currency_Numeric_Code">036</wd:ID>
</wd:Currency>
</wd:Report_Entry>
</wd:Report_Data>

PR00001
测试项目1
0
CG1
0
8a96ee707a264afe888d90ef93253305
澳元
036
但是,当我从另一个代理服务(位于不同的CAR文件中)调用MYTESTAPI1 REST API时,它会给出以下异常。任何帮助都会很有帮助。如果我返回结果而不传递给序列,那么它不会给出错误

[2020-02-10 18:00:39,229] ERROR {org.apache.synapse.transport.passthru.util.RelayUtils} - Error while building Passthrough stream org.apache.axiom.soap.SOAPProcessingException: First Element must contain the local name, Envelope , but found Report_Data
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:305)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:252)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createNextOMElement(StAXSOAPModelBuilder.java:234)
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:249)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204)
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:154)
    at org.apache.axiom.om.impl.AbstractOMMetaFactory.createStAXSOAPModelBuilder(AbstractOMMetaFactory.java:73)
    at org.apache.axiom.om.impl.AbstractOMMetaFactory.createSOAPModelBuilder(AbstractOMMetaFactory.java:79)
    at org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:196)
    at org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:65)
    at org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)
[2020-02-10 18:00:39229]错误{org.apache.synapse.transport.passthru.util.RelayUtils}-构建直通流org.apache.axiom.soap.SOAPProcessingException时出错:第一个元素必须包含本地名称信封,但找到了报告数据
位于org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:305)
位于org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOmeElement(StAXSOAPModelBuilder.java:252)
位于org.apache.axiom.soap.impl.builder.statxsoapmodelbuilder.createNextOMElement(statxsoapmodelbuilder.java:234)
位于org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:249)
位于org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:204)
位于org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder(StAXSOAPModelBuilder.java:154)
位于org.apache.axiom.om.impl.AbstractOMMetaFactory.createStAXSOAPModelBuilder(AbstractOMMetaFactory.java:73)
位于org.apache.axiom.om.impl.AbstractOMMetaFactory.createSOAPModelBuilder(AbstractOMMetaFactory.java:79)
在org.apache.axiom.om.OMXMLBuilderFactory.createSOAPModelBuilder(OMXMLBuilderFactory.java:196)上
位于org.apache.axis2.builder.SOAPBuilder.processDocument(SOAPBuilder.java:65)
位于org.apache.synapse.transport.passthru.util.DeferredMessageBuilder.getDocument(DeferredMessageBuilder.java:153)

我相信您正在使用地址端点。
请切换到HTTP端点以解决此问题。

消息似乎正在尝试使用SOAP生成器生成。为了避免此问题,可以尝试将messageType属性设置为合适的值。(例如:应用程序/xml)

在调用序列之前,请尝试添加此属性

<property name="messageType" value="application/xml" scope="axis2"/>


由于某种原因,SOAP信封标签似乎已从响应中删除。因为你有一个序列,这可能会导致这个。您能同时提供序列逻辑吗?第三方API返回的消息不是SOAP格式,我们能否使用该消息进行进一步的调解?