如何以编程方式检测Tomcat webapp中已使用的端口?

时间:2017-10-03 13:57:49

标签: java windows tomcat port bind

我向我的客户提供我的Tomcat webapp,它配置为侦听端口80并在其Windows PC上运行。

在他们的某些部署中,Microsoft的万维网发布服务已经无意中运行,它也会侦听端口80.因此,当启动Tomcat和我的webapp时,已在使用的地址:JVM_Bind 异常消息记录到控制台,但是它会被稍后的启动消息滚出屏幕,因此不被注意。

我的问题:有没有办法

  • 将Tomcat服务器配置为在这种情况下停止,或
  • 将我的webapp编码为检测到并停止?如果我的webapp可以检测到这一点,我会记录一条消息,告诉用户应该采取什么步骤来杀死其他程序。希望消息在控制台上仍然可见,而不是滚动屏幕。
    netstat -a -o -n | findstr 0.0:80
    taskkill /F /PID *pid*
    

虽然我有用户文档描述问题和补救措施,但它通常不方便。我的想法是,如果这是控制台上的最后一条消息,它可能会减少支持呼叫时间。

1 个答案:

答案 0 :(得分:2)

在IO(Http / Ajp连接器)已经启动后,您的应用程序将开始部署到servlet容器中,因此无法从Web应用程序执行此操作。

然而,您可以使用批处理文件包装Tomcat启动脚本,这将为您执行此操作(并打印有意义的错误消息,然后等待用户按Enter键。)