Tomcat无法启动Eclipse(超时)

Orl*_*lan 31 eclipse tomcat

我试图通过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.
Run Code Online (Sandbox Code Playgroud)

输出是

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
Run Code Online (Sandbox Code Playgroud)

我现在已经四处寻找解决方案.但我没有取得任何成功,而且可能很简单.我尝试过以下方法:

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

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

思考?

更新:我刚刚意识到服务器确实启动了.然而,eclipse所做的最后一个函数失败了.我如何观察到这一点是将超时设置为10分钟.在那段时间我能够访问服务器,但不是eclipse的调试功能.所以Eclipse启动它,尝试做一些事情,那些东西永远不会完成,Eclipse在超时期限之后关闭了Tomcat.

更新:回顾这个问题出现时发生的事情,计算机显然安装了Java更新.

eku*_*ela 36

Java更新对我造成了同样的问题(包括其他问题).该更新导致Eclipse在ping Tomcat时使用ipv6,并且由于某些原因无法使用我的设置.

我通过添加来修复它

-Djava.net.preferIPv4Stack=true
Run Code Online (Sandbox Code Playgroud)

eclipse.ini.

  • 这是一个救生员.你是怎么发现的? (4认同)

小智 24

我在我的系统上遇到了类似的问题(Windows 7专业版64位),Tomcat无法从任何Eclipse版本开始.事实证明,默认情况下Eclipse使用系统网络配置,如果您配置了不解析localhost的代理,Tomcat启动将挂起在Eclipse中!

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


小智 21

我发现这可能是由于无效/损坏/ ??? 在"Debug"中启动时代码中的断点.它通常伴随着缓慢的启动时间.

"删除所有断点"为我清除了这一点.

  • 就是这样!Eclipse 应该以某种方式显示通知或抛出异常。我花了几天时间才找到这个。 (3认同)

Mar*_*ark 7

就我而言,我在端口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连接器.


小智 6

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

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

这适用于Eclipse Helios/Tomcat 7


小智 5

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

  1. 将 http 1.1 端口更改为 8090。
  2. 将 -Djava.net.preferIPv4Stack=true 添加到 eclipse.ini (在我的例子中是 STS.ini)。
  3. 在窗口 -> 首选项 -> 常规 -> 网络连接中,将 Active Provider 设置为 Direct 或 Manual。
  4. 将 127.0.0.1 localhost 添加到主机 localdns 文件(C:\Windows\System32\drivers\etc\hosts)

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


Nic*_*ick 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" />
Run Code Online (Sandbox Code Playgroud)

会导致 STS 惊慌失措,同时:

<Connector executor="conPool" port="8080" redirectPort="8443" protocol="HTTP/1.1" />
Run Code Online (Sandbox Code Playgroud)

按预期工作。

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

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

在此处输入图片说明

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

在此处输入图片说明

删除时列出的正常端口。


小智 0

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

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

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