Java 如何通过servletcontextlistener停止tomcat启动

Java 如何通过servletcontextlistener停止tomcat启动,java,tomcat,servletcontextlistener,Java,Tomcat,Servletcontextlistener,如果某些情况没有发生,有没有办法停止tomcat的启动 例如,我希望servletContextListener的contextInitialized方法检查各种属性文件属性以及验证数据库连接等 我见过通过MBean事件关闭tomcat的方法,但它需要主机shutdown端口。在我的例子中,我希望有一个基类可以在同一台服务器上的多个Tomcat中使用(每个Tomcat都有自己的关闭端口) 您可以调用Tomcat的关机端口(通常为8005)。。。您所需要的只是端口号和文本(例如8005和SHUTD

如果某些情况没有发生,有没有办法停止tomcat的启动

例如,我希望servletContextListener的contextInitialized方法检查各种属性文件属性以及验证数据库连接等


我见过通过MBean事件关闭tomcat的方法,但它需要主机shutdown端口。在我的例子中,我希望有一个基类可以在同一台服务器上的多个Tomcat中使用(每个Tomcat都有自己的关闭端口)

您可以调用Tomcat的关机端口(通常为8005)。。。您所需要的只是端口号和文本(例如8005和SHUTDOWN)。如果您在主机上(servletContextListener在Tomcat中运行),则不需要主机名。Localhost应该做到这一点


另一种方法是让Java代码在服务器上运行一个进程-invoke./shutdown.sh,但这需要知道脚本在哪里。

这是一个旧答案,但仍然可以工作,也使用MBean,但我看不到主机或端口号:谢谢你的建议。我挂断了端口号。我的设计目标是拥有一个标准类,用于五个不同的web应用程序,该类具有自动连接的contextListener,因此它可以自行启动,而无需对每个web.xml进行任何自定义(每个应用程序在开发、测试和产品服务器上的端口可能不同)。我们的目标是让类完全自我管理,这样,如果安装过程中出现问题,它会向日志中发送一条有用的错误消息,然后关闭tomcat。如果可以,则可以调用./shutdown.sh