在进行OneWay()方法调用时,需要在路由中添加onException()处理器来捕获任何来自CXF服务的SoapFault异常。
代码示例:
from("direct:start")
.onException(SoapFault.class)
.handled(true)
.log(LoggingLevel.ERROR, "CXF SOAP Fault caught")
.end()
.to("cxf:bean:myService?defaultOperationName=myMethod&defaultOperationNamespace=http://myNamespace")
.onCompletion()
.log(LoggingLevel.INFO, "OneWay operation completed successfully")
.end();
在上面的代码中,当任何从CXF服务返回的SoapFault异常被捕获时,将会使用onException处理器进行处理,并输出日志信息。如果不加onException处理器,则将不会捕获SoapFault异常,从而会导致Cxf OneWay方法无法处理该异常。