簡體   English   中英

Java Web服務和遠程異常的最佳實踐

[英]Best practice for java web services and remote exception

我正在寫一個Web服務。 所以我有:

public interface MyService extends Remote
{
  public void service1();
}

public class MyServiceImpl implements MyService
{
  public void service1() { /* do something that sometimes throws an exception */ }
}

我正在閱讀有關RemoteException 我是否應該將try..catch中的所有代碼都包裝在service1()中,以將任何異常包裝在RemoteException 然后,我將不得不這樣做對service2() service3()等。

最好讓調用程序(在我的例子中為servlet)執行此操作?

在遠程異常中究竟應該包含什么內容-服務器中發生的一切? 還是僅涉及遠程調用過程(反射,序列化等)的異常?

您的代碼不應RemoteException ,如果在訪問遠程服務時發生錯誤,則應將其保留給WS框架。

大多數框架都將捕獲Exception ,並將其包裝為SOAP-Fault,這是客戶端通過處理來自SOAP-Fault的錯誤消息引發的另一個異常來正常處理的(請記住,客戶端可能不是Java)。

這樣做的結果是,您應該引發特定於已發生故障的異常,使框架發送適當的響應。

據我所知,您只需要聲明該方法在接口中引發RemoteException

public interface MyService extends Remote {
  public void service1() throws RemoteException;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM