我面临的情况是我们无法使用架构来验证传入的请求(基本上架构存在,但它接受请求中的任何字符串,wsdl设计者有自己的理由来接受来自不同来源的请求和灵活性) 。但是当收到请求时,我验证请求包装器的子元素是我们期望的(使用XPath)。现在,如果子元素不符合预期,我想将Soap Fault
与Client
代码一起抛出,并且可能包含模式验证失败的错误消息,请求不包含有效元素。
我正在使用Mule 3.3并在XPath
元素中进行<choice>
验证,我想在<otherwise>
块中抛出异常。
Soap Fault
和outInterceptor
是否会解决目的,因为我没有使用schemaValidation
的{{1}}属性。这是我流程的一部分
<cxf:proxyService>
答案 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>