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

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

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


当前回答

如果你在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 vX需要的几个端口(8005,8080,8009)。本地主机上的X服务器已经在使用

检查Tomcat的其他实例是否已经在运行,或者其他进程是否正在使用您可以使用的端口:

Netstat -b -a在windows命令提示符中。这将列出正在使用的端口,并为您提供使用每个端口的可执行文件。您需要在管理组中才能执行此操作。

你可能会得到这样的东西:

TCP 192.168.0.1:8009 192.168.0.1:0 LISTENING 196 [Tomcat7.exe] 192.168.0.1:0监听196 [Tomcat7.exe] TCP 192.168.0.1:8005 192.168.0.1:0 LISTENING 196 [Tomcat7.exe]

打开任务管理器Ctrl+Shift+Esc,关闭Tomcat7.exe或使用这些端口的任何其他进程。

您的Tomcat可能已经在运行。这就是为什么会出现错误。我以前也遇到过同样的问题。我的答案很简单:

重新启动计算机 打开Eclipse 运行Tomcat

这是所有。

您已经运行了另一个Tomcat实例。您可以通过在web浏览器中访问http://localhost:8080来确认这一点,并检查是否得到Tomcat默认主页或特定于Tomcat的404错误页面。两者都是Tomcat运行良好的有效证据;如果没有,那么您将得到一个特定于浏览器的HTTP连接超时错误消息。

你需要关掉它。进入Tomcat安装文件夹的“/bin”子文件夹,执行“shutdown.bat”(Windows)或“shutdown.sh”(Unix)脚本。如果无效,请关闭Eclipse,然后打开任务管理器并杀死所有java和/或javaw进程。

或者,如果您出于某种原因将其实际安装为Windows服务(即用于生产,在开发时没有帮助),请打开服务管理器(Start > Run > services.msc)并停止Tomcat服务。如有必要,请完全卸载Windows服务。对于开发来说,只有ZIP文件就足够了。

或者,如果您的实际意图是同时运行两个Tomcat实例,则必须配置第二个实例以侦听不同的端口。有关更多细节,请参阅Tomcat文档。

如何杀死一个windows服务使用PID -

打开命令提示符并输入netstat -ano 找到正在使用的端口的PID,在本例中为8080,8005,8009。假设这些端口的PID为5760。 现在输入taskkill /f /pid 5760 它将关闭PID,端口将可用。现在,您可以通过Windows服务或eclipse本身正常启动tomcat。

谢谢

杀死一个停止或启动卡住的Windows服务

如果您在Eclipse中的Java EE前景中,并试图以调试模式在Eclipse中启动Tomcat服务器,那么您将得到这样的错误。您必须在Eclipse中切换到预调试。我就这样解决了我的问题。