2013-04-04 114 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

相關問題