当Netbeans耗尽时,Tomcat 8的端口是否会干扰自身?

时间:2018-01-03 13:59:52

标签: java tomcat netbeans

我们有一个在Tomcat 7上运行的Web应用程序,我们正在转移到Tomcat 8,现在依赖于应用程序的内部微服务。我们使用Netbeans。

我对配置进行了必要的更改,以便我可以从命令行启动微服务应用程序,然后启动计算机上的Web应用程序。但是,当我尝试从Netbeans中运行Web应用程序时,它告诉我" Tomcat的启动失败,服务器端口8443已经在使用"。

我不知道为什么在Netbeans中运行时报告该端口正在使用,但是如果从命令行运行具有相同Web应用程序的相同服务器则不会。有没有人对要检查的内容有任何想法?

1 个答案:

答案 0 :(得分:0)

快速取得进步的方法只是使用 8443 以外的端口。这不一定能解决你遇到的问题,但它会绕过它。要做到这一点:

  • 停止Tomcat。
  • 选择 8443 以外的端口。我选择 8447
  • 从控制台运行以下命令以验证端口 8447 尚未使用:

netstat -aon | findstr 8447

  • 这是Windows的语法 - 我认为它在Linux上有所不同。如果未显示任何内容,则 8447 是可用端口。否则,请继续选择不同的端口号,直到找到可用的端口号。
  • 备份位于 {Tomcat dir} / conf 目录中的 server.xml (这样您就可以在必要时进行回归)。
  • 编辑 server.xml 8443 的所有实例替换为 8447 ,或您选择的其他任何端口,并保存文件。
  • 启动Tomcat。它将使用端口 8447 而不是 8443 。您可以在NetBeans中显示的Tomcat的日志中验证;查找字符串 https-openssl-apr-8447 以验证:
  

09-Jan-2018 02:07:26.279 INFO [main]   org.apache.coyote.AbstractProtocol.start启动ProtocolHandler   [" http-nio-8080"] 09-Jan-2018 02:07:26.285 INFO [main]   org.apache.coyote.AbstractProtocol.start启动ProtocolHandler   [" https-openssl-apr-8447 "] 09-Jan-2018 02:07:26.290 INFO [main]   org.apache.coyote.AbstractProtocol.start启动ProtocolHandler   [" ajp-nio-8009"] 09-Jan-2018 02:07:26.293 INFO [main]   org.apache.catalina.startup.Catalina.start服务器启动时间为2585毫秒

  • 您现在应该可以测试您的网络应用。我刚刚验证了这种方法可以使用Tomcat 9,但我确信它也适用于Tomcat 8。

作为一个单独的问题,一旦所有内容都在端口 8447 上运行,请运行 netstat -aon | findstr 8443 查看Tomcat运行时是否仍在使用端口 8443 。如果是,则(在Windows上)获取仍在使用该端口的进程的PID,然后在任务管理器详细信息选项卡上查找该PID。这里的屏幕截图显示,在我的情况下,端口 8447 被PID 2340 使用,这是Tomcat的 java.exe 的实例:

Tomcat PID

如果没有解决任何问题:

  • 请告知使用哪种操作系统和哪种版本的NetBeans。
  • 将NetBeans中Tomcat的相关日志部分添加到您的帖子中。