WSO2 ESB负载工厂创建了无效的SOAP信封
我试图在WSO2的ESB中将REST请求转换为SOAP请求。因此,我在ESB中创建了一个提供REST端点的API。在此API中,每个资源都有一个包含有效负载工厂中介的In序列。此中介将REST请求转换为SOAP消息。然后将SOAP消息发送到我之前定义的自定义ESB代理 问题是:当我发送一个REST请求时,请求被处理并转换为SOAP,但是响应HTML状态代码是500。因此,我在ESB中激活了SOAP消息跟踪器,以检查传入的消息以及由负载工厂中介器创建的消息的外观 负载工厂产生的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消息看起来肯
<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=""""/>
假设格式为text/xml,则应使用标头中介设置SOAP操作。如果没有SOAP操作,可以将其设置为空:
<header name="Action" value=""""/>