如何在mule中手动抛出Soap Fault

时间:2013-01-17 16:29:21

标签: soap cxf mule

我面临的情况是我们无法使用架构来验证传入的请求(基本上架构存在,但它接受请求中的任何字符串,wsdl设计者有自己的理由来接受来自不同来源的请求和灵活性) 。但是当收到请求时,我验证请求包装器的子元素是我们期望的(使用XPath)。现在,如果子元素不符合预期,我想将Soap FaultClient代码一起抛出,并且可能包含模式验证失败的错误消息,请求不包含有效元素。

我正在使用Mule 3.3并在XPath元素中进行<choice>验证,我想在<otherwise>块中抛出异常。

  1. 有没有办法在mule flow中手动抛出Soap Fault
  2. 如何添加自定义故障字符串。我不确定outInterceptor是否会解决目的,因为我没有使用schemaValidation的{​​{1}}属性。
  3. 这是我流程的一部分

    <cxf:proxyService>

1 个答案:

答案 0 :(得分:6)

由于您使用的是cxf:proxy-service,因此您可以完全控制响应。例如,如果在otherwise块中添加以下内容,则可以创建所需的任何SOAP错误:

<expression-component><![CDATA[
 message.payload = '<soap:Fault xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'
                 + '<faultcode>A code</faultcode><faultstring>A string</faultstring>'
                 + '</soap:Fault>';
]]></expression-component>