Eclipse中的Tomcat:无论如何,它在启动时运行但是超时

我正在使用Tomcat 7在Eclipse(Helios)中运行java Web应用程序。服务器成功启动(持续时间指示)但是Eclipse的进度条仍然在旋转,说Tomcat正在启动。 最终达到超时并抛出错误。

我相信Tomcat很好,因为我已经使用了它使用的命令并在shell中手动运行它。 Tomcat运行正常,我可以在预期的URL上点击Web应用程序。 我也可以在它启动之后和超时发生之前点击它。

我重新安装了Eclipse,我用干净的方式运行它,我删除/重新创建了服务器。 没有任何效果。 有人有任何线索吗?

我有这个问题,似乎Eclipse在启动后调用应用程序url以确保它正在运行。

代理客户端(pshione)更改了系统代理,因此eclipse无法调用起始页面并认为应用程序尚未启动!

我删除了代理,现在工作正常!

编辑:

使用SSL启动tomcat时也会发生这种情况,但ssl认证无效。 当你打电话给无效的SSL认证网站时,有些浏览器确认你是否要去一个,但是eclipse无法连接到你的无效ssl网站! 我建议使用普通的http而不是https来测试您的网站。

Java的某些更新会导致Eclipse的网络操作出现问题。 具体来说,Eclipse尝试使用IPv6而不是IPv4,有时会失败。 当Eclipse启动Tomcat时,它所做的最后一步是测试对Tomcat的调试调用。 这很可能是悬而未决的部分。 幸运的是,修复非常简单。 我们只是告诉Eclipse使用IPv4。

要执行此操作,请编辑eclipse.ini文件(位于Eclipse目录中),并将以下内容添加到文件末尾:

-Djava.net.preferIPv4Stack=true 

重启Eclipse,你应该好好去。

我找到了答案(就在发布之后,具有讽刺意味的是,似乎是如何找到自己问题的答案。)

答案是该端口正被另一个进程使用。 我应该知道但升级了几个不同的包将会这样做。 但对于症状:

  • Tomcat成功启动。 能够在超时前点击应用程序。
  • Eclipse看起来无法确定服务器是已启动还是已停止。

HTTP当前正在默认的8080下运行。不幸的是,我的数据存储正在8080处监听(我的猜测是因为我不太确定它对端口做了什么,除了它是为jmx分配的)。 我猜测Eclipse无法在8080检测到Tomcat。

我遇到了这个问题,似乎我的tomcat版本是buggy(tomcat 7.0.23)将你的tomcat版本切换到另一个(即tomcat 7.0.14)它对我有用。

祝好运

我有同样的问题,这是由于我定义的连接器(我只有一个AJP连接器)。

向Tomcat的server.xml添加HTTP连接器解​​决了这个问题。

如果两个servlet已映射到同一请求URL,则会发生这种情况,Tomcat将启动正常,但eclipse将无法生成正确的web.xml文件,因此无法发布webApp。 检查你的servlet映射@WebServlet("\TheURLThatShouldInvokeThisServlet")确保两个servlet没有相同的“TheURLThatShouldInvokeThisServlet”。

(把它作为记录!)