Tomcat 9总是提供已用于http / https连接器的地址

问题描述

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

Server.xml更改: 连接器端口=“ 8060”协议=“ 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天的时间解决此问题,我们将不胜感激任何帮助。

很抱歉,您在连接器中的redirectPort的用途是什么?在上述情况下,这是否意味着Nginx将在端口8060上与tomcat对话,并且tomcat将在内部将请求重定向到端口8080?

谢谢。

解决方法

解决了该问题,Jboss在同一端口的同一台VM上运行,这会导致“地址已在使用中”错误。

lsof -n -i:80 | grep LISTEN->命令查找在端口8080上运行的pid

ps -ef | grep pid->查看指定pid上正在运行的内容。