当我试图在Eclipse中的Tomcat上运行一个简单的JSP程序时,我得到了以下错误。

Tomcat v6.0服务器在本地主机上所需的几个端口(8005、8080、8009)已经被使用。服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动此服务器,您需要停止其他进程或更改端口号。

这是如何引起的,我该如何解决它?


当前回答

在windows操作系统中,右键单击任务栏——>启动任务管理器——>进程,然后检查java.exe或javaw是否正在运行,如果正在运行,然后单击它并结束进程,然后重新启动你的tom cat服务器。

有时skype将占用端口80,在这种情况下,更改skype设置并将skype设置为81或更改tomcat配置。

其他回答

如果你在windows上运行,在命令行提示符中试试这个:

netstat -ano

这将显示所有正在使用的端口以及正在使用该端口的进程的进程id PID #。 然后按Ctrl+Alt+Del并打开任务管理器,查看哪个进程。

然后,您可以选择关闭/停止它,或者配置您的服务器使用其他端口。 要检查新选择的端口(比如8010)是否可用,请执行以下操作:

netstat -ano | grep 8010

如果它没有返回任何行,那么就没问题。

要更改端口,请转到Server视图,打开Server .xml并在那里更改端口。 我的记录是这样的:

Connector port="8010" protocol="AJP/1.3" redirectPort="8443"

当项目中的其他人也使用与您相同的端口号时,就会发生这种情况! 双击tomcat服务器,将端口号更改为8585或其他。代码现在将开始运行!

在窗户的情况下,我经历了一个新的东西… 从/bin文件夹停止tomcat将不会立即释放端口8080。端口释放大约需要5 ~ 10分钟。10分钟后再次如果我试图运行我的项目 运行->在服务器上运行。它允许运行。

我不确定我的理解是否正确!

如果Eclipse说

Tomcat v6.0服务器在本地主机上所需的几个端口(8005、8080、8009)已经被使用

出现此错误是因为tomcat可能正在后台运行,所以首先停止该服务器。

解决方案是:

打开“控制台”视图(窗口->显示视图->控制台) 然后停止tomcat服务器。 然后打开“服务器”视图并启动服务器,它将工作。

谢谢!

当Apache Tomcat不能正确终止时,即使发送了关闭指令,也会出现这个问题。在我使用Tomcat 8的情况下,这种情况经常发生,令人讨厌。幸运的是,您可以使用Windows PowerShell和netstat命令创建一个简单的脚本来终止进程。

下面的PowerShell脚本将解析netstat的输出,以找到监听127.0.0.1:8005的任何进程,提取其PID,然后杀死该进程:

netstat -a -o -n `
 | select -skip 4 `
 | % {$a = $_ -split ' {3,}'; New-Object 'PSObject' -Property @{Original=$_;Fields=$a}} `
 | ? {$_.Fields[1] -match '127\.0\.0\.1\:8005$'} `
 | % {Write-Host "Killing PID" $_.Fields[4] "..."; taskkill /F /PID $_.Fields[4] }

如果server.xml将Tomcat配置为使用不同的端口或IP,则相应地编辑脚本第四行上的正则表达式。

最后,我应该指出,Linux上的情况要好一些,因为您可以指示Tomcat在启动时将其PID保存到一个文件中,然后使用开关强制关闭—用于nix系统的关闭脚本已经具有杀死进程的能力,并且不需要使用netstat进行探测工作。