WSO2:ESB:将接收的非SOAP格式的数据传递到序列失败

问题描述 投票:0回答:1

我有一个REST API(简称为MYTESTAPI1),该API会为某些数据调用第三方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>

但是,当我从另一个代理服务(位于另一个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)
wso2 wso2esb
1个回答
0
投票

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


0
投票

似乎该消息正在尝试使用SOAP构建器构建。为避免此问题,可以尝试将messageType属性设置为合适的值。 (例如:application / xml)

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

<property name="messageType" value="application/xml" scope="axis2"/>
© www.soinside.com 2019 - 2024. All rights reserved.