WSO2 ESB负载工厂创建了无效的SOAP信封

WSO2 ESB负载工厂创建了无效的SOAP信封,soap,wso2,wso2esb,Soap,Wso2,Wso2esb,我试图在WSO2的ESB中将REST请求转换为SOAP请求。因此,我在ESB中创建了一个提供REST端点的API。在此API中,每个资源都有一个包含有效负载工厂中介的In序列。此中介将REST请求转换为SOAP消息。然后将SOAP消息发送到我之前定义的自定义ESB代理 问题是:当我发送一个REST请求时,请求被处理并转换为SOAP,但是响应HTML状态代码是500。因此,我在ESB中激活了SOAP消息跟踪器,以检查传入的消息以及由负载工厂中介器创建的消息的外观 负载工厂产生的SOAP消息看起来肯

我试图在WSO2的ESB中将REST请求转换为SOAP请求。因此,我在ESB中创建了一个提供REST端点的API。在此API中,每个资源都有一个包含有效负载工厂中介的In序列。此中介将REST请求转换为SOAP消息。然后将SOAP消息发送到我之前定义的自定义ESB代理

问题是:当我发送一个REST请求时,请求被处理并转换为SOAP,但是响应HTML状态代码是500。因此,我在ESB中激活了SOAP消息跟踪器,以检查传入的消息以及由负载工厂中介器创建的消息的外观

负载工厂产生的SOAP消息看起来肯定是错误的,如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Body>
     <soapenv:Envelope>
        <soapenv:Body>
           <mms:getCarData xmlns:mms="mms.cardiag"/>
        </soapenv:Body>
     </soapenv:Envelope>
  </soapenv:Body>

正如您很容易看到的,消息中创建了第二个
+正文。我不明白为什么会发生这种情况,关键是因为我非常仔细地遵循了WSO2文档的说明

我还在RESTAPI中提供了一个资源的实现,因此您可以检查我的有效负载工厂中介的配置。我确信我错过了一些重要的东西,但不幸的是,我无法弄清楚是什么

<resource methods="GET" uri-template="/cardata">
  <inSequence>
     <payloadFactory media-type="xml">
        <format>
           <mms:getCarData xmlns:mms="mms.cardiag"/>
        </format>
        <args/>
     </payloadFactory>
     <log level="full" category="TRACE"/>
     <send>
        <endpoint>
           <address uri="http://wso2-1:8280/services/TestProxy" format="soap11"/>
        </endpoint>
     </send>
  </inSequence>
  <outSequence>
     <send/>
  </outSequence>


谢谢你的帮助

假设格式为text/xml,您应该使用头中介设置SOAP操作。如果没有SOAP操作,可以将其设置为空:

<header name="Action" value="&quot;&quot;"/>

假设格式为text/xml,则应使用标头中介设置SOAP操作。如果没有SOAP操作,可以将其设置为空:

<header name="Action" value="&quot;&quot;"/>