为什么一个tomcat进程会占用多个端口
2个回答
展开全部
在企业版Eclipse中,在已经启动了Tomcat服务器后,准备运行页面或Servlet时,有时会出现这样的关于Tomcat服务器端口占用的问题:“Several ports (8005, 8080, 8009) required by Tomcat v6.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).”
错误信息的大意是说Tomcat运行所需的那三个端口被被的程序占用了。 我个人遇到过的的原因大概有以下几种:情况一:点击运行的时候没有选中页面或Servlet窗口的标签情况如下图:
仔细观察可知,左图其实并没有选中要运行的Servlet窗口的标签,因为标签是白色的,此时点击运行按钮的话相当于再启动一个服务器进程,端口当然是被原来那个已经启动的服务器给占了。而右图中Servlet窗口标签是蓝色的,说明已经被选中了,点击绿色的运行按钮后自然就是将这个Servlet装入已经启动的那个服务器运行,所以不会有像刚才那种端口占用的情况。情况二:在硬盘的两个地方都有Tomcat 下面说说我碰到过的另一种情况,以前在D盘安装过一个Tomcat,后来因为有段时间不怎么用,就忽略了。再后来又开始做练习的时候,在C盘装了另一个Tomcat,并且在Eclipse中配置的时候也是默认选择了C盘的那个Tomcat。悲剧的是,因为原来在D盘的那个Tomcat我设成了开机启动,所以端口一开始就被它占着。因此,在Eclipse中启动Tomcat(C盘那个)时,就出现了端口占用的错误提示。
后来把D盘的Tomcat删除后,在Eclipse中就能正常运行页面了。情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用 这种情况很难一下子看出来,不过反正就是要找出到底是哪个程序占用了这几个端口。可以在控制台里用“netstat -abn”命令查看正在运行的程序所占用的端口以及相关信息:
可以看到,是"javaw.exe"这个程序占用了8009和8080端口,在资源管理器中把它结束掉就可以了。
当然,还可能有其他情况导致的原因。慢慢探索吧。
错误信息的大意是说Tomcat运行所需的那三个端口被被的程序占用了。 我个人遇到过的的原因大概有以下几种:情况一:点击运行的时候没有选中页面或Servlet窗口的标签情况如下图:
仔细观察可知,左图其实并没有选中要运行的Servlet窗口的标签,因为标签是白色的,此时点击运行按钮的话相当于再启动一个服务器进程,端口当然是被原来那个已经启动的服务器给占了。而右图中Servlet窗口标签是蓝色的,说明已经被选中了,点击绿色的运行按钮后自然就是将这个Servlet装入已经启动的那个服务器运行,所以不会有像刚才那种端口占用的情况。情况二:在硬盘的两个地方都有Tomcat 下面说说我碰到过的另一种情况,以前在D盘安装过一个Tomcat,后来因为有段时间不怎么用,就忽略了。再后来又开始做练习的时候,在C盘装了另一个Tomcat,并且在Eclipse中配置的时候也是默认选择了C盘的那个Tomcat。悲剧的是,因为原来在D盘的那个Tomcat我设成了开机启动,所以端口一开始就被它占着。因此,在Eclipse中启动Tomcat(C盘那个)时,就出现了端口占用的错误提示。
后来把D盘的Tomcat删除后,在Eclipse中就能正常运行页面了。情况三:(8005,8080,8009)三个端口中的至少一个被其他程序占用 这种情况很难一下子看出来,不过反正就是要找出到底是哪个程序占用了这几个端口。可以在控制台里用“netstat -abn”命令查看正在运行的程序所占用的端口以及相关信息:
可以看到,是"javaw.exe"这个程序占用了8009和8080端口,在资源管理器中把它结束掉就可以了。
当然,还可能有其他情况导致的原因。慢慢探索吧。
快又稳
2024-10-28 广告
2024-10-28 广告
广州快又稳网络科技有限公司是一家集技术研发、产品创新、服务优化于一体的高新技术企业。公司自成立以来,始终秉承“网络使人类缩进距离,我们让网络快又稳”的核心理念,致力于为全球客户提供高效、安全、易用的互联网解决方案及信息技术服务。在数字时代,...
点击进入详情页
本回答由快又稳提供
展开全部
server.xml配置文件中,占用三个port,
<Server port="3333" shutdown="SHUTDOWN"> shutdown服务的原本是8009
<Connector port="1111" protocol="HTTP/1.1" HTTP协议的原本是8080
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="2222" protocol="AJP/1.3" redirectPort="8443" /> AJP协议的原本是8005
<Server port="3333" shutdown="SHUTDOWN"> shutdown服务的原本是8009
<Connector port="1111" protocol="HTTP/1.1" HTTP协议的原本是8080
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="2222" protocol="AJP/1.3" redirectPort="8443" /> AJP协议的原本是8005
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询