我对 Mule 3.3.1 CE 中的 Web 服务有疑问。我有一个 Web 服务,它公开了三个操作和一个实现这些操作的类。这些操作可以返回结果(肯定)或异常(AuthExeception、ValidateExeception 等)。感谢 SOAP Mule 组件,当我引发 Java 异常时,框架能够在 SOAP 错误中编组 Java 异常,但是如果我想既向客户端返回 SOAP 错误并使用 Mule 中的异常策略处理异常(即发送电子邮件),骡子的行为不是我怎么能期望的。换句话说,例如,当我引发 AuthException 时,流控制传递给定义的异常策略,并且我不再能够将 SOAP 错误 (AuthException) 发送回客户端。
问题是:我怎样才能既发回 SOAP 响应又处理异常策略?
下面是 mule xml 文件的片段,其中异常策略仅使用 Logger 组件实现:
<flow name="esb_consignmentFlow1" doc:name="esb_consignmentFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="${conn.host}" port="8081" doc:name="HTTP" path="sgb/consignment" />
<cxf:jaxws-service doc:name="Process SOAP Request" serviceClass="com.suzuki.sales.webservice.ProcessTriggerPortType"/>
<component class="it.aizoon.suzuki.service.implementation.TriggerConsignmentOperationsImplementation" doc:name="triggerConsignmentOperationsImpl"/>
<catch-exception-strategy doc:name="Catch Exception Strategy">
<flow-ref name="ErrorHandling" doc:name="Flow Reference"/>
</catch-exception-strategy>
</flow>
<flow name="ErrorHandling" doc:name="ErrorHandling" >
<logger level="INFO" doc:name="Logger"/>
</flow>
我读过一些关于处理策略的东西,但我不知道这是否是正确的方法。非常感谢您的帮助。