我有一个 WSDL First Apache CXF Web 服务,它按预期工作,除了我在服务器端抛出的异常在客户端上没有收到。相反,在客户端,我得到一个 SOAPFaultException 类型的异常,其中只有 detailMessage 包含来自原始服务器端异常的消息,但我想接收我在服务器端抛出的确切异常类型,包括原因链。
我希望默认情况下它会像这样工作,但它肯定不在我的系统中。我一直在检查 CXF 文档以找到有关如何实现此目的的提示,但到目前为止我还没有发现任何有用的东西。
SOAP 参考不支持堆栈跟踪。如果需要,您需要将堆栈跟踪复制为 SoapFault 返回的消息。
使用 CXF,您可以通过在收入拦截器链上添加拦截器来实现。请参阅此问题以了解如何创建拦截器。
你应该把它放在 POST_INVOKE 阶段。