我相信我在WSO2 ESB中发现了错误。
我为客户定义了代理服务。 关闭安全性后,我总是得到预期的结果,但是当我启用安全性(方案1 - UsernameToken)时,我得到错误" SOAP信封除了SOAP Header和Body"之外不能有孩子。
我可以用回声'重现这个错误。服务。
这是请求:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:echo="http://echo.services.core.carbon.wso2.org">
<soap:Body>
<echo:echoString>
<in>ABC</in>
</echo:echoString>
</soap:Body>
</soap:Envelope>
关闭安全性或在<soap:Header />
元素之前添加<soap:Body>
元素会再次提供预期的响应。
我使用WSO2 ESB版本4.8.1,SoapUI 5.0.0作为客户端。
答案 0 :(得分:2)
SOAP标头包含与SOAP消息相关的特定于应用程序的信息。它们通常包含路由信息,身份验证信息,事务语义等。
如果您删除了<soapenv:Header/>
,SoapUI将不会将您的用户名和密码发送到rampart。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:echo="http://echo.services.core.carbon.wso2.org">
<soapenv:Header/>
<soapenv:Body>
<echo:echoString>
<!--Optional:-->
<in>ABC</in>
</echo:echoString>
</soapenv:Body>
</soapenv:Envelope>
因为AxisEngine系统错误导致您的错误由org.apache.axiom.soap.SOAPProcessingException返回。
当您向安全的一个标题发送请求时必须...