2013-08-29 53 views
1

我有類似這樣的代碼:您可以使用JAX-WS和SOAP拋出鏈式異常嗎?

public class SOAPServer { 
    public Object[] getObjects() throws IllegalStateException { 
     Object[] objects = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" } 

     int index = 10; 
     try { 

      Object object = objects[index]; 
     } catch (Exception e) { 
      throw new IllegalStateException("Server cannot access Object " + index + ".", e); 
     } 

     return objects; 
    } 
} 

客戶端可以接收沒有問題,拋出的異常,但似乎原因是沒有通過SOAP傳遞。 Exception::getCause()返回null。

有沒有辦法使用JAX-WS & SOAP來拋出像這樣的鏈式異常?

回答

2

有沒有辦法使用JAX-WS & SOAP來拋出像這樣的鏈式異常?

  1. 可能理論上是這樣,但它最有可能擊敗SOAP的語言中立性,所以它不會被推薦甚至僅以這些理由;

  2. 即使在使用Java序列化時這樣得到平凡的支持,它仍然不是推薦,因爲您無法控制哪個異常將是根本原因。它可能不是序列化的,它可保持一個巨大的對象圖的引用,等等

它總是建議只是一個錯誤消息傳送到客戶端,並依靠對詳細的服務器側的日誌診斷。

相關問題