2011-05-11 118 views
2

我已經開發了一個使用JAX-WS的Web服務,並且在web.xml中我已經註冊了這個servlet上下文監聽器。重寫ServletContextListener的實現是否是一個好習慣?

<listener> 
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
</listener> 

但是,現在我有一些特定的功能要完成時,Web服務是UP和當Web服務關閉。我能想到的唯一方法是創建一個ServletContextlistener並將其添加到web.xml

但是,這將覆蓋指定的那個(如上面顯示的<listener>標籤)。

我擔心在這種情況下,WSServletContextListener可能已經在實施ServletContextListener方法,並且必須在其中進行特定的工作。

我試圖擴展WSServletContextListener類,但它的最後所以不能。另一種方法是,我可以將WSServletContextListener作爲實例成員加入到我的偵聽器類中,幷包裝它提供的所有方法。但這是一種好的做法嗎?

回答

4

創建您自己的偵聽器並將其聲明爲新的<listener>..</listener>標記。應該按照在web.xml中指定的順序調用這兩個偵聽器。

+0

+1 - 你可以有一個以上的istener。 – 2011-05-11 17:11:39

1

你可以聲明幾個聽衆,他們將在他們在web.xml定義的順序調用:

<listener> 
    <listener-class>com.example.First</listenerclass> 
</listener> 
<listener> 
    <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class> 
</listener> 
<listener> 
    <listener-class>com.example.Last</listener-class> 
</listener> 
相關問題