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

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

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


当前回答

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

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

其他回答

最简单的解决方案

单行删除多个端口命令:

kill $(lsof -t -i:8005,8080,8009) 

8005、8080和8009为需要释放的端口。

或者,在linux下尝试sudo kill sudo lsof -t -i:8005。

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

您已经运行了另一个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文档。

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

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

这可能是因为您没有正确地停止tomcat服务。为此,打开你的任务管理器,你可以看到一个javaw.exe服务。首先停止服务。现在重新启动tomcat,它可以正常工作。