在没有Header元素的情况下调用服务时WSO2 ESB出错

时间:2014-04-28 14:14:00

标签: wso2 wso2esb

我相信我在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作为客户端。

1 个答案:

答案 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返回。

当您向安全的一个标题发送请求时必须...