2014-07-12 45 views
0

我使用Jersey 2.10.1創建RESTful webservices。我想要一個基類,它將有一箇中心位置來創建一些ID,我將在整個應用程序中傳播。這個基類還將有一個try catch塊,其中在子類中生成的任何異常都將被捕獲。我想知道這個基類是否應該擴展ServletContainer?我正在嘗試開發模板模式。我的基類將被調用,然後將調用委託給子類。有沒有更好的或替代的方法來做到這一點?我將不勝感激任何建議或提示。澤西島的模板模式?

public class BaseClass extends ServletContainer { 

    public Value<Integer> service(URI baseUri, URI requestUri, 
           final HttpServletRequest request, 
           HttpServletResponse response) throws   ServletException,IOException { 
     1. GENERATE UNIQUE ID 
      try { 
      return webComponent.service(baseUri, requestUri, request, response); 
     } catch(Throwable e) { 
       //LOG the exception here 
      } 
    } 
} 

@Path("/test") 
public class Child extends BaseClass { 
} 

回答

0

你可以使抽象的BaseClass和創建一個抽象的方法generateId。孩子們必須執行它。在BaseClass的service方法中,首先調用generateId(),它會調用每個孩子的具體實現。