2013-04-04 118 views
0

我有一个WSDL第一个Apache CXF Web服务按预期工作,但我在服务器端抛出的异常没有在客户端上收到。 而是在客户端,我得到一个SOAPFaultException类型的异常,其中只有detailMessage包含来自原始服务器端异常的消息,但我希望收到我在服务器端抛出的确切异常类型,包括原因链。如何将CXF异常从服务器传播到客户端

我希望这个工作是这样的默认情况下,但它肯定不会在我的系统中。我一直在检查CXF文档以找到有关如何实现这一点的提示,但到目前为止我还没有发现任何有用的东西。

回答

1

SOAP引用不支持堆栈跟踪。如果你想要的话,你需要将堆栈跟踪作为SoapFault返回的消息进行复制。

对于CXF,您可以通过在收入拦截器链上添加一个Interceptor来完成。请参阅this question以了解如何创建拦截器。

你应该把它放在POST_INVOKE阶段。

+0

感谢您的理解。我想我只是期望得到这个支持,因为CXF的wsdl2java工具为它在wsdl文件中发现的每个Soap错误生成了Exception类。但是instanciating和投掷这些导致他们仍然被捕获在服务器端。我决定改变我的设计,并简单地改变我的操作返回类型以包含异常信息,而不是将它们嵌入到SoapFault中。特别是因为我的例外根本不是肥皂相关的。 – Gert 2013-04-05 14:40:19

相关问题