【发布时间】:2023-03-09 18:52:01
【问题描述】:
目前这就是我捕获异常和设置有效负载的方式
<catch-exception-strategy name="Catch_Exception_Strategy">
<logger message="#[exception.summaryMessage]" level="ERROR" doc:name="Logger"/>
<set-payload value="Error in service operation" doc:name="Set Payload"/>
</catch-exception-strategy>
但是,CXF SOAP 组件设置了真实响应对象的负载。而我想在 SOAP Fault 中发送错误对象。我该怎么做?
提前致谢。
更新
默认异常策略发送带有错误消息的 SOAP Fault。最初我的目的是添加记录器并让默认错误消息进入 SOAP 故障。我添加了 Catch 异常策略,但后来发现它没有发送 SOAP 错误。相反,我使用了发送 SOAP 错误的回滚策略。然而,使用 Mule Logger 在策略块内记录异常并没有太大的好处,因为它已经被 Mule 记录了。
现在,我意识到使用 cxf:outFaultInterceptor 的优势。您不仅可以向 SOAP Fault 添加自定义元素,还可以将自定义日志隔离在单独的日志文件中。感谢 Anirban 提供示例拦截器类。
【问题讨论】: