Tomcat无法启动Eclipse(超时)

时间:2012-07-07 00:49:34

标签: 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.

输出

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. 删除服务并在eclipse中重新制作
  2. 重新启动计算机,eclipse
  3. 重新安装eclipse,tomcat
  4. 使用-clean
  5. 启动Eclipse
  6. 启动没有网络应用的服务器
  7. 增加超时时间
  8. 我可以从命令行启动tomcat就好了。但是,我需要通过eclipse运行它来调试。我知道 this SO post并且已经通过它和许多其他人无济于事。

    思想?

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

    更新:回顾一下这个问题出现时的情况,计算机显然安装了Java更新。

27 个答案:

答案 0 :(得分:36)

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

我通过添加

修复了它
-Djava.net.preferIPv4Stack=true

eclipse.ini

答案 1 :(得分:23)

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

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

答案 2 :(得分:20)

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

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

答案 3 :(得分:7)

在我的情况下,我在端口8080上禁用了HTTP / 1.1连接器,而在端口8443上支持SSLEnabled(https)HTTP / 1.1连接器。

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

似乎Eclipse认识到Tomcat已成功启动,Tomcat必须配置为在端口8080上具有非SSL连接器。

答案 4 :(得分:6)

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

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

这适用于Eclipse Helios / Tomcat 7

答案 5 :(得分:4)

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

  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)
  5. 最后我意识到所有这一切都发生了,因为我把tomcat本机库放进去了。我删除了它并恢复了上面的所有更改,它现在正常工作。无论如何,感谢您帮助我将问题与本机库联系起来的所有帮助。

答案 6 :(得分:3)

好吧,我尝试了所有这些选项,我无法获得最新版本的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似乎没有这个问题。有人已提交a very similar bug

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

enter image description here

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

enter image description here

删除时列出的正常端口。

答案 7 :(得分:2)

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

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

[Given(@"New Browser Launched")]
            public void GivenNewBrowserLaunched()
            {
                SuperTests spr = new SuperTests();
                _driver = spr.LaunchURL("Firefox");
                seleniumContext.WebDriver = _driver;
            }

    public void GivenSetTheServiceTo(string serviceId)
            {
                When("UK_Select a Service from the option "+serviceId);
                    Then("UK_The Services is changed to the one selected " + serviceId);
            }

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

这用Eclipse 4.5(火星)和它修复了它。 Tomcat 8

答案 8 :(得分:2)

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

  1. 转到窗口&gt;显示视图&gt;服务器
  2. 双击Tomcat v7.0(这是我得到的版本)
  3. 在“主机名:”字段中检查您是否拥有有效的别名 - 如果不确定,请使用localhost或检查/ etc / hosts或%systemroot%\ system32 \ drivers \ etc \ hosts
  4. 延长超时只会延迟不可避免的时间,它会解决症状而不是原因。

答案 9 :(得分:1)

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

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

<强>参考

  

答案 10 :(得分:1)

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

  1. 在系统属性中添加了所有环境变量。
  2. Window -> Preferences -> General -> Network Connections有效提供商转为手动
  3. eclipse.ini 文件中-Djava.net.preferIPv4Stack=true之后添加了-vmargs
  4. 超时从45秒增加。
  5. 更新了Eclipse。
  6. 希望这有帮助.. !!!

答案 11 :(得分:0)

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

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

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

答案 12 :(得分:0)

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

答案 13 :(得分:0)

我参加聚会很晚,但这可能会对某人有所帮助。 Eclipse和tomcat适配器的nio协议已损坏。 将server.xml的端口标记中的协议更改为protocol =“ HTTP / 1.1”。

答案 14 :(得分:0)

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


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

答案 15 :(得分:0)

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

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

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

答案 16 :(得分:0)

在localhost上双击Tomcat v7.0 Server,将“主机名”更改为您的IP(IPv4)。 它曾经是'localhost'

答案 17 :(得分:0)

编辑:

  

确保您的主机名是&#34; localhost&#34;,或者您使用的是特定的   IP地址,确保其为您的计算机的CORRECT IP地址   具有

我从&#34; localhost&#34;更改了我的主机名到我的特定IP地址(当时)。这是为了解决我在进行移动应用程序开发时遇到的问题。

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

只是一个抬头,有时它是一个简单的修复。

答案 18 :(得分:0)

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

答案 19 :(得分:0)

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

答案 20 :(得分:0)

对于那些尝试启动重载应用程序的人,有很多INFO级别的日志记录到控制台。请注意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);
    }

试一试,将应用程序日志级别设为= ERROR。希望这会对某人有所帮助。

答案 21 :(得分:0)

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

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

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

答案 22 :(得分:0)

我解决了添加

的麻烦
127.0.0.1 localhost

到主机localdns文件(C:\ Windows \ System32 \ drivers \ etc \ hosts),似乎这个问题是由于本地主机名上的ipv6引起的。

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

答案 23 :(得分:0)

转到Windows - &gt;偏好 - &gt; NetworkConnections - &gt;有一个下拉列表有三个值:

  1. 直接
  2. 手册
  3. 本地
  4. 默认情况下它是原生的,因此请选择手册并单击 Apply

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

答案 24 :(得分:-1)

我的问题结果是我编辑了8443上的ssl的tomcat安装server.xml文件而不再是8080 ... eclipse将其拉入并将在启动时挂起... 复制了原始server.xml并重新创建了服务器并且一切都很好......我有很好的目标射击自己的脚......

答案 25 :(得分:-1)

从Eclipse工作区文件中删除.metadata文件解决了我的问题。 然后它需要重新启动Eclipse并从0配置环境(透视图,视图,变量,服务器,同步等...)

答案 26 :(得分:-2)

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

相关问题