Tomcat 9 始终给出已用于 http/https 连接器的地址

Tomcat 9 always gives Address already in use for http/https connectors

我们最近在 Centos 上将 tomcat 从版本 7 升级到 tomcat 9.x。当我们启动 tomcat 时,我们看到以下错误 - org.apache.catalina.util.LifecycleBase.handleSubClassException 无法初始化组件 [Connector[HTTP/1.1-8080]] 原因:java.net.BindException:地址已在使用

Server.xml 变化: 连接器 port="8060" protocol="org.apache.coyote.http11.Http11Protocol" redirectPort="8080" proxyName="myproxy" proxyPort="443" scheme="https" /> 即使 catalina.out 显示此错误,我们的应用程序运行正常。我们确认端口 8080 上没有其他服务 运行,当我们切换回 tomcat 7 时,日志中没有显示错误。 我们确实有 nginx 作为 tomcat 前面的反向代理,但它在端口 80 和 443 上侦听并在端口 8060 (http://127.0.0.1:8060) 上与 tomcat9 通信。 我们现在已经花了整整 2 天时间来解决这个问题,我们将不胜感激任何帮助。

抱歉我孤陋寡闻了,Connector中redirectPort的作用是什么?在上面的例子中,这是否意味着 nginx 将与端口 8060 上的 tomcat 通信并且 tomcat 将在内部将请求重定向到端口 8080?

提前致谢。

发现问题,Jboss 是在同一端口的同一虚拟机上 运行,这导致“地址已在使用”错误。

lsof -n -i :80 | grep LISTEN -> 命令在端口 8080

上查找 pid 运行

ps-ef | grep pid -> 查看指定 pid 上的 运行 是什么。