是的,有辦法做到這一點,但我相信它仍然是特定於WebSphere的。幾年前我們遇到了同樣的問題,即使發生嚴重錯誤,需要大量配置的應用程序仍會顯示爲已啓動。唯一的辦法是查看日誌文件並查看是否發生了任何異常(並且Web UI不能很好地工作)。
處理生命週期,這似乎在大多數集裝箱工作的標準方法,是了ServletContextListener但你發現沒有處理啓動錯誤沒有得體的方式。
在WebSphere(反正有幾個版本)中,有一個啓動bean的概念。而不是試圖去解釋它的細節,因爲它在幾年前,我做到了,這是你可以看看這個鏈接http://publib.boulder.ibm.com/inforcenter...
這實質上是允許您創建一個EJB Bean上實現了兩個方法:
public boolean start() {
return new Delegate().start();
}
public void stop() {
new Delegate().stop();
}
如果返回從它返回一個成功的開始啓動方法true,否則返回false停在控制檯應用程序將表明它未能啓動開始,因此應用程序。我們實現了一個Delegate來完成這個工作,所以如果容器沒有實現啓動Bean,我們可以將它連接到啓動bean或ServletContextListener。
啓動Bean的唯一附加事情是,在WebSphere中,您需要在管理控制檯中啓用啓動Bean服務,否則它們將不會運行,並且您的應用程序不會執行任何初始化,但仍會顯示爲啓動時你嘗試並啓動它。有關於如何從上述頁面做到這一點的信息。
我也確信IBM紅皮書中有關於此的更多詳細信息,但目前似乎找不到它。
可能的複製 - http://stackoverflow.com/questions/272194/abort-java-webapp-on-startup – 2009-08-26 21:15:37