31

我正在尝试通过 Eclipse 运行 Tomcat。这是我过去几年所做的事情。昨天还在工作,现在不行了。我得到的错误是

Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

输出是

Jul 06, 2012 8:32:26 PM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program Files\Java\jdk1.7.0_05\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\;D:\Launch;D:\Program Files\Java\jdk1.7.0_05\bin;%PROGRAMFILES%\Internet Explorer;C:\Program Files (x86)\SMLNJ\bin\;D:\Program Files\TortoiseSVN\bin;C:\ghc\ghc-6.6\bin;D:\Program Files\MySQL\MySQL Server 5.5\bin;%ANT_HOME%/bin;D:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;D:\Program Files\Microsoft SQL Server\100\Tools\Binn\;D:\Program Files\Microsoft SQL Server\100\DTS\Binn\;D:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\;D:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;D:\Program Files (86x)\;.
Jul 06, 2012 8:32:26 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-bio-8080"]
Jul 06, 2012 8:32:26 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 468 ms
Jul 06, 2012 8:32:26 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Jul 06, 2012 8:32:26 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.28
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\Program Files\Java\apache-tomcat-7.0.28\webapps\docs
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\Program Files\Java\apache-tomcat-7.0.28\webapps\examples
Jul 06, 2012 8:32:26 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: contextInitialized()
Jul 06, 2012 8:32:26 PM org.apache.catalina.core.ApplicationContext log
INFO: SessionListener: contextInitialized()
Jul 06, 2012 8:32:26 PM org.apache.catalina.core.ApplicationContext log
INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@5710ddf9')
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\Program Files\Java\apache-tomcat-7.0.28\webapps\host-manager
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\Program Files\Java\apache-tomcat-7.0.28\webapps\manager
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory D:\Program Files\Java\apache-tomcat-7.0.28\webapps\ROOT
Jul 06, 2012 8:32:26 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jul 06, 2012 8:32:26 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jul 06, 2012 8:32:26 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 504 ms

我已经四处寻找解决方案几个小时了。但我没有取得任何成功,这可能很简单。我尝试了以下方法:

  1. 删除Serve并在eclipse中重新制作
  2. 重启电脑,eclipse
  3. 重新安装eclipse、tomcat
  4. 使用 -clean 启动 Eclipse
  5. 启动没有 Web 应用程序的服务器
  6. 增加超时

我能够从命令行启动tomcat就好了。但是,我需要通过 eclipse 运行它来调试。我知道这个 SO 帖子,并且已经通过它和许多其他的无济于事。

想法?

更新:我刚刚意识到服务器确实启动了。但是,eclipse 执行的最终功能之一失败了。我观察到这一点的方法是将超时设置为 10 分钟。在那段时间我能够访问服务器,但不能访问 Eclipse 的调试功能。所以 Eclipse 启动它,尝试做一些事情,但事情永远不会完成,Eclipse 在超时时间之后关闭了 Tomcat。

更新:回顾出现此问题时发生的情况,计算机显然安装了 Java 更新。

4

28 回答 28

38

Java 更新给我带来了同样的问题(等等)。该更新导致 Eclipse 在 ping Tomcat 时使用 ipv6,并且由于某种原因不适用于我的设置。

我通过添加来修复它

-Djava.net.preferIPv4Stack=true

eclipse.ini.

于 2012-10-05T11:45:09.143 回答
26

我发现这可能是由于无效/损坏/???在“调试”中开始时代码中的断点。它通常伴随着缓慢的启动时间。

“删除所有断点”为我清除了这一点。

于 2015-06-16T21:33:45.247 回答
25

我的系统(Windows 7 pro 64 位)也有类似的问题,Tomcat 没有从任何 Eclipse 版本开始。事实证明,默认情况下Eclipse 使用系统网络配置,如果您配置了不能解析 localhost 的代理,Tomcat 启动将在 Eclipse 中挂起

要查看您是否有此问题,请转到Window -> Preferences -> General -> Network Connections并查看是否选中了其中一​​个框。我可以通过将Active Provider设置为Direct(它取消选中所有框)来覆盖我的代理配置。

于 2013-05-01T08:40:26.863 回答
10

在我的例子中,我禁用了端口 8080 上的 HTTP/1.1 连接器,而使用了端口 8443 上的 SSLEnabled (https) HTTP/1.1 连接器。

我不确定 Eclipse/Tomcat 通信是否由于错误的端口或错误的协议而失败,但是当我将端口 8080 上的 HTTP/1.1 连接器添加回我的 server.xml 时(除了端口上的安全连接器8443),Eclipse 能够正确检测到 Tomcat 的成功启动。

看来,要让 Eclipse 识别 Tomcat 已成功启动,必须​​将 Tomcat 配置为在端口 8080 上具有非 SSL 连接器。

于 2015-01-27T21:50:38.173 回答
7

我能够通过执行以下操作来解决此问题:

  • 右键单击 Tomcat 服务器(在 Eclipse Servers 透视图下)
  • 选择打开 - 它应该打开 xml 编辑器
  • 查找 Timeouts 部分并将值增加到 > 45s

这适用于 Eclipse Helios / Tomcat 7

于 2012-11-21T22:14:18.930 回答
5

好吧,我尝试了所有这些选项,但我无法让我最近版本的 STS(Spring Tool Suite 3.7.1.201510041213-RELEASE)确定 Tomcat 已经启动。

我试过 Tomcat 7.0.64、8.0.26、8.0.28。所有结果都相同。我确实让 vanilla Tomcat 安装工作,所以我认为它一定是我的 server.xml(或其他文件)有问题。

所以我逐行遍历,直到服务器视图停止获取启动状态。长话短说,在连接器上设置secure属性(设置为任何值,例如false)会导致 STS 假定它是另一个 SSL 处理程序。

例如:

<Connector secure="false" executor="conPool" port="8080" redirectPort="8443" protocol="HTTP/1.1" />

会导致 STS 崩溃,同时:

<Connector executor="conPool" port="8080" redirectPort="8443" protocol="HTTP/1.1" />

按预期工作。

看起来 STS 假设仅具有安全属性,而不管值如何,它都是一个 SSL 处理程序。旧版本的 STS 似乎没有这个问题。有人已经提交了一个非常类似的错误

另请注意,服务器配置窗格显示:

在此处输入图像描述

当 server.xml 具有secure非 SSL 连接器上的属性时(并且行为有些不稳定),并且:

在此处输入图像描述

删除时列出的正常端口。

于 2015-10-20T18:47:19.847 回答
4

在这里遇到同样的问题。尝试了其他人提出的所有这些解决方案,但没有一个对我有用。

  1. 将 http 1.1 端口更改为 8090。
  2. 将 -Djava.net.preferIPv4Stack=true 添加到 eclipse.ini (在我的例子中是 STS.ini)。
  3. 在 Window -> Preferences -> General -> Network Connections 中,将 Active Provider 设置为 Direct 或 Manual。
  4. 将 127.0.0.1 localhost 添加到 hosts localdns 文件 (C:\Windows\System32\drivers\etc\hosts)

最后,我意识到这一切都是因为我将 tomcat 原生库放入其中。我删除了它并恢复了上面的所有更改,它现在可以工作了。无论如何,感谢您的所有帮助,帮助我将问题与本机库联系起来。

于 2014-05-28T16:40:23.850 回答
2

我弄乱了我的 /etc/hosts 文件并删除了我在 Eclipse 中设置的别名。所以

  1. 转到窗口 > 显示视图 > 服务器
  2. 双击Tomcat v7.0(这是我得到的版本)
  3. 在“主机名:”字段中检查您是否有有效的别名 - 如果不确定,请使用 localhost 或检查 /etc/hosts 或 %systemroot%\system32\drivers\etc\hosts

延长超时只会延迟不可避免的事情,它会解决症状而不是原因。

于 2014-06-08T07:08:57.947 回答
2

当主机名设置为 localhost 时,请确保 Tomcat 实际上正在侦听 127.0.0.1。

在 Eclipse 中启动 Tomcat 服务器时,日志会显示如下内容:

10:07:23 INFO  main o.a.c.h.Http11NioProtocol Initializing ProtocolHandler ["http-nio-192.168.2.63-8080"]

您的 Tomcat 服务器配置“主机名”和 HTTP/1.1 端口必须解析为显示的 IP 地址和 HTTP 端口(在给定示例中为 IP 192.168.2.63 端口 8080)

这用 Eclipse 4.5 (Mars) & Tomcat 8 修复了它

于 2015-08-11T08:18:28.893 回答
2

在尝试了上述所有解决方案后仍然面临同样的问题。我通过将 http 连接器添加到 server.xml 解决了这个问题。事实上,在解决问题之前,我只有 https 连接器。似乎eclipse通过请求http url来寻找tomcat启动,一旦删除eclipse无法确定tomcat是否成功启动。

于 2016-03-29T08:48:53.080 回答
1

我遇到了同样的问题。我做了所有这些事情。

  1. 在系统属性中添加了所有环境变量。
  2. Window -> Preferences -> General -> Network ConnectionsActive Provider转为Manual
  3. -Djava.net.preferIPv4Stack=trueeclipse.ini文件-vmargs中添加。
  4. 超时时间从 45 秒增加。
  5. 更新了 Eclipse。

希望这可以帮助.. !!!

于 2017-03-24T07:36:05.293 回答
1

这是一篇非常古老的帖子,但这些解决方案中没有一个对我有用。我必须在这篇文章和其他文章中结合使用答案才能使其正常工作。这就是我所做的;

  • 添加127.0.0.1 localhost到主机文件
  • 添加-Djava.net.preferIPv4Stack=true到 eclipse.ini 文件
  • Active Provider设置为Manual inWindow > Preferences > General > Network Connections
  • 将主机名更改为Servers (view) > Overview (pane)计算机的网络 IP。
  • 禁用自动重新加载Server (view) > Module (pane) > Module (list item) > Edit (action button)

参考

于 2018-05-28T17:39:48.507 回答
0

我只是在这里注意到了同样的错误。Eclipse Juno + Apache 7(7.0.27 和 7.0.29)。

服务器启动,我可以使用应用程序,但仍然引发超时错误。

使用 Eclipse Indigo SR2 它可以正常运行。我还注意到我的 JAVA_HOME 和 JRE_HOME 变量被删除了(可能是由于一些 Java 更新),所以我再次设置了变量。

于 2012-07-13T18:42:43.157 回答
0

转到 Windows --> Preferences --> NetworkConnections --> 有一个包含三个值的下拉列表:

  1. 直接的
  2. 手动的
  3. 本国的

默认情况下它是本机的,因此选择手册并单击Apply

它适用于带有 Tomcat 7 的 Eclipse Juno EE。

于 2013-10-11T07:11:12.537 回答
0

我解决了这个麻烦添加

127.0.0.1 localhost

到主机 localdns 文件(C:\Windows\System32\drivers\etc\hosts),似乎这个问题是由于 localhost 名称上的 ipv6 造成的。

要了解这是否是问题,请尝试ping localhost并查看是否已解决 ad ipv4 或 ipv6。

于 2013-05-06T07:20:42.817 回答
0

Eclipse 和 tomcat 适配器与 nio 协议损坏。将 server.xml 中端口标记中的协议更改为protocol="HTTP/1.1".

于 2020-03-27T16:09:44.873 回答
0

从左侧面板双击您的服务器并增加时间限制

在此处输入图像描述

于 2021-11-03T06:45:28.720 回答
0

您还必须验证您没有运行最新版本的 java jdk(例如 1.8),如果是这种情况,请将您的 eclipse 配置为使用旧版本(例如 1.7)。

于 2015-09-19T21:13:12.503 回答
0

看起来 Eclipse 正在验证 Tomcat 在 :8080 上的运行状态。

当我禁用所有连接器但一个用于 SSL 连接 (:8443) 时,我在 Eclipse+Tomcat 上遇到了类似的问题。

为了避免这个问题,我在 server.xml 中留下了:8080和 :8443 连接器。

于 2016-07-19T05:19:55.383 回答
0

我今天遇到了这个问题,我按照上面的说明进行操作,但没有任何效果。最后我在服务器选项卡上删除了我的 tomcat 配置并更新了一个,在服务器位置,我选择“使用工作区元数据(不修改 Tomcat 安装)”,如果这些选项是灰色的,无法更改,尝试更改下面的服务器选项,它将起作用。


PS:这个问题似乎与代理设置无关,因为我在网络连接中选择了本机选项并使用了代理。当我更改服务器位置时,Tomcat 不再卡住,尽管正在准备启动委托选项卡再次出现。

于 2018-11-20T05:58:02.753 回答
0

双击本地主机上的 Tomcat v7.0 服务器,将“主机名”更改为您的 IP(IPv4)。它曾经是“本地主机”

于 2016-10-09T01:20:05.053 回答
0

我遇到了同样的问题并遵循了提供的大多数解决方案,但它们对我不起作用。

我的一位前辈告诉我问题的原因。以前,我使用mvn clean install -Pstaging创建了一个用于登台环境的构建,它在目标文件夹中为登台环境创建了一个 WAR 文件。现在,每当我启动 tomcat 时,它都会使用目标中的设置连接到登台数据库服务器并且无法连接(卡在准备启动委托)。

修复:首先在工作区目录中运行mvn clean install,然后在 Eclipse 中右键单击项目 -> Maven -> 更新项目。现在运行tomcat。

于 2018-05-31T10:45:17.943 回答
0

对于那些试图启动重负载应用程序的人,将大量信息级别记录到控制台。请注意,Eclipse 控制台打印机可能会被打印的数据量混淆并长时间挂起 Eclipse,而服务器实际上将启动并可以通过浏览器访问。

这个问题发生在我身上,我花了很长时间才弄清楚发生了什么。我正在运行 Eclipse Mars 和 Tomcat 7。在我的案例中,应用程序试图将所有单例 bean 名称打印到控制台,大约有几千个 bean 名称,因此 Eclipse 快疯了。

org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons

    if (this.logger.isInfoEnabled()) {
       this.logger.info("Pre-instantiating singletons in " + this);
    }

试一试,将应用程序日志记录级别设置为错误。希望这会对某人有所帮助。

于 2015-12-13T06:09:40.977 回答
0

转到控制面板/程序/程序和功能/已安装的更新,然后卸载上次的Microsoft windows更新,重新启动计算机,它就可以工作了。

于 2021-07-12T12:52:15.240 回答
0

当您将服务器设置中的主机名设置为无效值时,也会发生这种情况。

于 2016-05-26T16:39:13.297 回答
0

编辑:

确保您的主机名是“localhost”,或者如果您使用的是特定 IP 地址,请确保它是您计算机的正确 IP 地址。

我将主机名从“localhost”更改为我的特定 IP 地址(当时)。这是为了解决我在做移动应用程序开发时遇到的一个问题。

我的问题是我的IP地址改变了。所以将我的主机名更新为我的新 IP 地址。(完成移动测试后,我会将其恢复为 localhost)。

只是一个提示,有时它是一个简单的修复。

于 2016-09-22T15:35:29.287 回答
-1

我的问题原来我已经在 8443 上编辑了 ssl 的 tomcat install server.xml 文件,而不再在 8080 上...eclipse 将其拉入并会在启动时挂起...复制原始 server.xml 并再次创建服务器等等好...我有很好的目标射击自己的脚...

于 2013-04-08T17:51:31.337 回答
-2

问题肯定出在您的 JDK 版本上。如果您运行的是 Windows 7,我会考虑更改您的 JDK 版本和您的 tomcat 版本。

于 2014-03-18T11:05:11.737 回答