WSO2 ESB—自动添加的soap信封正在引发问题
我正在探索WSO2 ESB,遇到了一个问题。我正在使用一个简单的传递代理来发布来自SAP或Postman的XML数据,以测试哪些数据然后被转发到RESTAPI——这应该很容易 当我不通过ESB直接发布到RESTAPI时,它工作正常。200,好吗 但是WSO2 ESB正在自动添加SOAP信封,REST API将不接受该信封。我尝试了各种方法来删除自动添加的SOAP信封,但没有成功。尝试过XSLT转换、POX格式、丰富中介等,我能找到的每一个建议。 如果信封元素作为正文的一部分发送,我可以使用XSLT删除它,但WSO2添加的信封元素除外 我可以在不使用SOAP信封的情况下通过以下方式访问主体:WSO2 ESB—自动添加的soap信封正在引发问题,soap,proxy,wso2,esb,envelope,Soap,Proxy,Wso2,Esb,Envelope,我正在探索WSO2 ESB,遇到了一个问题。我正在使用一个简单的传递代理来发布来自SAP或Postman的XML数据,以测试哪些数据然后被转发到RESTAPI——这应该很容易 当我不通过ESB直接发布到RESTAPI时,它工作正常。200,好吗 但是WSO2 ESB正在自动添加SOAP信封,REST API将不接受该信封。我尝试了各种方法来删除自动添加的SOAP信封,但没有成功。尝试过XSLT转换、POX格式、丰富中介等,我能找到的每一个建议。 如果信封元素作为正文的一部分发送,我可以使用XSL
<property name="body" expression="$body/*[1]" type="OM"/>
但我不确定如何将其转发给API
有没有关于如何阻止在WSO2 ESB中首先添加此信封的想法,或者关于如何删除它的想法
我使用了answer中的xslt代码,当我在正文中包含SOAP标记时,该代码可以正常工作,但对似乎自动添加到WSO2中的SOAP信封没有任何影响,除非给出下面的错误
我尝试了不同的线条变化:
<xsl:apply-templates select="soap:Envelope/soap:Body/*"/>
比如
<xsl:apply-templates select="soap:Envelope/*"/>
<xsl:apply-templates select="/*"/>
这是我在ESB日志中看到的一个错误:
无法使用:Value{name='null',keyValue='discountPayment'}对源XPath:s11:Body/child:[position=1]| s12:Body/child:[position=1]执行XSLT转换原因:无法使用XSLT结果创建OmeElement
我对WSO2 ESB非常陌生,以前也没有使用过XSLT,所以我的方法中可能存在一些非常基本的错误
这是我的代理xml和XSLT removeSOAP:
一位同事今天发现了这一点,我在这里发布了答案,以备将来对某人有所帮助: 在代理服务中,在发送之前,添加行
<property name="DISABLE_CHUNKING" value="true" scope="axis2"/>
然后它就起作用了
不需要如上所示的XSLT转换,只要这一行就可以修复它。如果您的后端是一个更好的API,那么您可以使用http端点:
请将您尝试过的代码添加到此问题。考虑一下阅读:你可以张贴你正在使用的事务,包括头文件和代理服务配置吗?添加你的ESB代理配置XML…
<send>
<endpoint>
<http method="POST"
uri-template="http://your.backend.endpoint.org/"/>
</endpoint>
</send>