是的,有办法做到这一点,但我相信它仍然是特定于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