[英]“Standardized” way of handling the lifecycle of a Java EE application
在開發 Java EE 應用程序時,我經常遇到在應用程序啟動、停止等時執行操作的“問題”。例如,對於 Weblogic,有一種機制(應用程序生命周期偵聽器)。 但是,如果您想讓您的應用程序不受應用程序的影響。 特定於服務器,您必須找到不同的解決方案。 有些人建議使用在啟動時加載的 servlet,並“濫用” init()
/ destroy()
。
其他人說使用ServletContextListener
。 對我來說,最后一個聽起來最好(根據ServletContextListener
的 java 文檔。不幸的是,今天我嘗試了ServletContextListener
7,似乎 jax-ws webservices 在任何其他Servlet
通知之前被初始化,因此在
長話短說 - 我只是在這里面臨一些應用程序服務器特定的問題 - 還是有任何“更合適”的標准化 Java EE 方式來注冊東西,做一些事情,在任何 web 服務、servlet 之前初始化?
如果您的網絡服務是這樣注釋的
@javax.jws.WebService(...)
public interface YourServiceEndpoint
他們還不是真正的servlets,但是 JBoss (Jax-WS) 會將他們變成一家初創公司。
我正在使用 jboss-4.2.3,並且在調用ServletContextListner
之前我也會收到這些消息。
[org.jboss.wsf.framework.management.DefaultEndpointRegistry] register: jboss.ws:context=crm,endpoint=YourService
但我想知道,如果在完整的應用程序啟動之前這個 web 服務可用,因為幾乎在部署結束時我收到以下消息
[org.jboss.wsf.stack.jbws.WSDLFilePublisher] WSDL published to: ... YourServlet(..).wsdl
所以我猜,這是一個 jboss 相關問題。 也許我們應該在另一個應用服務器上進行測試來證明這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.