2012-03-14 16 views
1

爲了幫助排除Web服務故障,我想將faultStackTraceEnabled和exceptionMessageCauseEnabled設置爲true。使用CXF時,從java代碼設置jax-ws屬性faultStackTraceEnabled和exceptionMessageCauseEnabled

它似乎是一個可以在配置XML https://cxf.apache.org/docs/jax-ws-configuration.html中定義的端點設置。唯一的問題是沒有配置xml。客戶端使用CXF版本2.5.2 wsdl2java創建。該配置似乎只是註釋。

嘗試了一些代碼來獲得終點並設置屬性,但它不起作用。

 UserManagementService ss = new UserManagementService(); 
     UserManagementServiceV10 port = ss.getUserManagementServiceV10(); 

     org.apache.cxf.endpoint.Client client = 
       org.apache.cxf.frontend.ClientProxy.getClient(port); 
     org.apache.cxf.endpoint.Endpoint cxfEndpoint = client.getEndpoint(); 
     EndpointInfo endPointInfo = cxfEndpoint.getEndpointInfo(); 
     endPointInfo.setProperty("faultStackTraceEnabled", "true"); 
     endPointInfo.setProperty("exceptionMessageCauseEnabled", "true"); 

回答

0

這些設置僅用於服務器端告訴服務器返回故障跟蹤並返回客戶端。他們不會對客戶端產生任何影響。我不確定你想要完成什麼。

+0

感謝Daniel的迴應。 此通話失敗。 GetRolesResponse getRolesResponse = port.getRoles(getRolesRequest,requestHeaderInfo,holder); 有了這個例外: 2012-03-14 15:28:43862 [主要] ERROR edu.wmich.d2l_ws.TestGetUser - 投擲java.lang.ClassCastException:java.lang.Object中 沒有堆棧跟蹤和沒有錯誤的細節,所以我認爲它必須與屬性。 此調用: GetRolesResponse getRolesResponse = port.getRoles(getRolesRequest); 工作正常,但我必須添加標題。這就是爲什麼我選擇了具有requestHeaderInfo參數的調用。 – 2012-03-14 15:35:36

+0

我重建了軸2的Web服務。軸2拋出一個空指針。調試後,它看起來好像我得到一個肥皂故障,而不是預期的響應。這可能就是爲什麼CXF也給我一個錯誤。調試https Web服務非常棘手。 CXF中缺少堆棧跟蹤使其更加困難。如果有更簡單的調試方法,請告訴我。 – 2012-03-28 12:45:04

相關問題