“localhost上的服务器Tomcat v7.0服务器无法启动”,而无需堆栈跟踪,而它在终端中工作

时间:2012-11-06 04:08:59

标签: eclipse tomcat

所以这个项目在周末之前工作得很好(有其他问题,但至少Tomcat推出)。现在,当我尝试启动Tomcat服务器时,它会立即出现以下错误:

Server Tomcat v7.0 Server at localhost failed to start.

但是,我可以通过Terminal启动Tomcat,这个问题发生在Eclipse( Eclipse Java EE IDE for Web Developers。版本:Juno Service Release 1 构建ID:20121004-1855

我搜索了几个试图寻找解决方案的论坛,但无济于事!请帮助有需要的人。

34 个答案:

答案 0 :(得分:93)

  1. 从Windows→显示视图→服务器菜单

  2. 打开服务器选项卡
  3. 右键单击服务器并将其删除

  4. 通过在服务器选项卡上执行新建→服务器

  5. 来创建新服务器
  6. 单击“配置运行时环境...”链接

  7. 选择Apache Tomcat v7.0服务器并将其删除。这将删除Tomcat服务器配置。这是许多人 错误的地方 - 他们删除服务器但不删除运行时环境。

  8. 单击确定并立即退出上面的屏幕。

  9. 从下面的屏幕中,选择Apache Tomcat v7.0服务器,然后单击下一步按钮。

  10. 浏览Tomcat安装目录

  11. 单击“下一步”并选择要部署的项目:

  12. 点击添加项目后的完成

  13. 现在启动您的服务器。这将修复服务器超时或旧服务器配置的任何问题。此解决方案还可用于修复“端口更新未发生”问题。

答案 1 :(得分:55)

要解决此问题,您必须删除目录中的.snap文件:

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

删除此文件后,您可以毫无问题地启动Eclipse。

答案 2 :(得分:34)

要解决此问题,您必须删除以下目录中的 tmp文件夹

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

如果删除此文件夹时出现任何问题,请重新启动eclipse,然后再次删除该文件夹。

答案 3 :(得分:21)

就我而言,问题出现在xml代码中。

我的web.xml文件看起来像这样:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

    <servlet>
        <servlet-name>index</servlet-name>
        <jsp-file>index.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>index</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

但我把它改成了

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <display-name>Archetype Created Web Application</display-name>

</web-app>

现在服务器正常加载。 奇怪。

答案 4 :(得分:12)

我遇到了这个问题,因为我在servlet类和web.xml中定义了servlet映射。

  

您必须小心检查是否在servlet类和web.xml中定义了servlet映射

1)删除@WebServlet("...")

@WebServlet("/Login")
public class Login extends HttpServlet {
}

2)删除<servlet></servlet> <servlet-mapping></servlet-mapping>

<servlet>
    <servlet-name>ServletLogin</servlet-name>
    <servlet-class>Login</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ServletLogin</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

原因:

我使用支持servlet 3.0的apache tomcat 7.0。

使用Java EE注释,标准web.xml部署描述符是

可选的。根据

中的servlet 3.0规范

http://jcp.org/en/jsr/detail?id=315

答案 5 :(得分:11)

  

localhost上的服务器Tomcat v7.0服务器无法启动。

此错误解决了以下三种情况

1.清洁项目&amp;服务器

或者

2.从此目录中删除.snap文件

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources

或者

3.从此目录中删除临时文件

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core

答案 6 :(得分:7)

就我而言,问题发生在web.xml文件中,我忘了在url-pattern之前加上“/”(例如/login.do)。

如上所述,@ Ajak6通过将servlet API添加为项目的外部JAR库,解决了我的问题。

但是,我发现了一种更好的方法,将Tomcat添加到目标运行时,如下所示;

1)项目&gt;特性

2)在侧边菜单上选择“Targeted runtimes”

3)选择Tomcat(点击申请)

4)点击确定

答案 7 :(得分:6)

创建新工作区也可以解决此问题..

答案 8 :(得分:6)

上面提到的答案都不适合我。我在Eclipse IDE中使用Tomcat 9。因此,我在Eclipse Neon上尝试了以下步骤。

步骤1:点击Servers标签查看您的服务器。就我而言,它看起来如下:

enter image description here

步骤2:右键单击服务器,选择Properties,您将看到以下窗口。点击Switch Location,它会将位置从默认位置更改为下图所示。点击Apply然后OK关闭窗口。

enter image description here

步骤3 双击Tomcat服务器,将打开Overview选项,如下图所示。当我这样做时,Server Locations部分对我来说是活跃的(它在图像中显示为非活动状态,因为我已经在我的端部执行了操作并且我的服务器正在运行)并且我选择了第二个单选按钮选项{{1 }}。然后我关闭了此选项,在提示时保存了更改并启动了我的服务器。它开始工作正常。

enter image description here

答案 9 :(得分:6)

打开您的web.xml文件。 (如果你不知道它在哪里,那就去谷歌吧。) 它是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
.
.
.
.
</web-app>

<?xml version="1.0" encoding="UTF-8"?>行的正下方,添加标记<element>并在最底部用</element>标记将其关闭。完成。

答案 10 :(得分:5)

我在tomcat服务器上遇到了同样的问题,但是当我深入检查时,我发现我在我的web.xml文件中添加了一个新标签,服务器不接受它,所以检查你的文件是否有任何更新然后重启你的雄猫将会很好。

答案 11 :(得分:3)

一秒钟工作正常,然后我的服务器开始给我这个错误。我仔细阅读了这里提到的所有答案,对我来说有用的是这个简单的解决方案:

删除服务器,然后配置新服务器

如果您确定没有更改任何内容并且刚刚弹出错误,请不要开始删除.snap文件或其他临时文件。这样做只会导致更多问题。如果由于您所做的某些更改而发生错误,则此错误肯定是因为web.xml文件中的某些错误。

P.S。更改工作区对你来说绝对没有用,因为如果你的项目存在问题,那么当你导入项目时它仍会出现在新的工作空间中!

答案 12 :(得分:2)

1-转到您的工作区目录».metadata».plugins»org.eclipse.wst.server.core文件夹。

2-删除tmp文件夹。

3-重新启动Eclipse IDE

答案 13 :(得分:2)

我有同样的问题,这里的答案没有帮助我的情况。 经过几个小时的搜索,我找到了解决方案,我希望它能帮助别人。

对于任何获得“localhost上的服务器Tomcat v7.0服务器无法启动”的人来说,这是一个解决方案。在eclipse中配置tomcat服务器并尝试在其上运行项目后出错。

在eclipse中配置tomcat服务器后,需要从tomcat复制“WEB-INF”目录。 C:\ ...%TOMCAT_HOME%\ webapps \ ROOT和他们你会发现“WEB-INF”只是将它复制并粘贴到eclipse项目的WebContent文件夹中(覆盖web.xml文件)。

希望这有帮助。

答案 14 :(得分:2)

在我的情况下,错误是它无法找到servlet-api.jar。不知道为什么突然间它开始给出错误。因为之前它运行没有任何问题。在构建路径选项中给出servlet-api.jar后,服务器已成功启动。

答案 15 :(得分:1)

检查您的Web描述符(web.xml)或您的servlet(您在哪里注释,检查类似于&#39; @WebServlet(&#34; / servlet_name&#34;)&#39;)的任何重复项。如果有的话,将它们删除。

答案 16 :(得分:1)

本周末我遇到了类似的问题。尝试了上面提到的所有技巧,但没有一个对我有用。 (在Eclipse LUNA中工作)

然后我分析了在创建特定servlet之前,我成功运行了Apache Tomcat v7.0。这是“RefreshServlet”,如下所示:

RefreshServlet.java

这样练习servlet就能理解“AutoRefresh”的功能。 当我从我的应用程序中删除此servlet时,它工作正常,但是当我尝试添加并运行此servlet时,它会出现相同的错误“Apache Tomcat v7.0无法启动”

不知道为什么,但只有删除这个servlet才能运行我的其余应用程序。

所以,我的底线建议是,如果没有任何其他技巧可行,那么在获取此错误之前尝试删除任何最新的servlet或您刚刚创建的任何类,并且对于其他部分它也可以正常工作申请。

任何进一步的解释将不胜感激。感谢

答案 17 :(得分:1)

在我的eclipse工作区中,通过执行以下步骤解决了这个问题。 窗口 - &gt;偏好 - &gt;网络连接 - &gt;将“Active Provider”更改为“Direct”,而不是“Native”。你可以尝试一下。

答案 18 :(得分:1)

在我的情况下,我确实将我的tomcat文件夹(包含所有文件的文件夹)部署到另一个地方。

然后当我开始使用eclipse并尝试使用jsp&servues和servlet运行我的项目时,我遇到了同样的错误。

我在这里尝试了所有的答案,但它仍然没有改变任何东西。我的解决方案是将所有tomcat JAR文件放入项目库中,如下所示:

  1. 转到Eclipse
  2. 右键单击您正在处理的项目&gt;构建路径&gt;配置构建路径...&gt;图书馆&gt;添加外部JAR
  3. 从Tomcat / bin和Tomcat / lib
  4. 中选择所有JAR文件
  5. 按&#34;确定&#34;
  6. 现在您应该在项目的Libraries文件夹中找到它们,然后它应该可以工作。

答案 19 :(得分:1)

尝试删除服务器控制台中的现有tomcat服务器,如果您没有控制台,则可以转到“显示视图 - &gt;服务器”,然后通过右键单击删除服务器。添加新服务器肯定会对您有所帮助。

答案 20 :(得分:0)

就我而言,从web.xml中删除servlet标签并在tomcat lib文件夹中添加缺少的库即可解决此问题。

答案 21 :(得分:0)

如果所有给出的答案都不适合您,那么只需更改当前工作区。

文件 - &GT;切换工作空间

这将解决你的问题。

答案 22 :(得分:0)

我通过右键单击“服务器”选项卡中的tomcat服务器并单击“清理Tomcat工作目录”来解​​决此问题

答案 23 :(得分:0)

创建新项目并将所有文件导入到新项目。它对我有用。...

答案 24 :(得分:0)

您可以右键单击apache-tomcat,选择属性,然后单击Restore Default。

答案 25 :(得分:0)

问题可能出在servlet中,因此请查看您是否在servlet的URL模式中使用注释。

尝试将项目构面(动态Web项目)版本更改为2.5,并在web.xml中定义所有servlet条目,这应该可以解决问题。

您可以通过在项目属性中更改Eclipse来更改项目构面版本->在搜索框中搜索“构面”,将Dynamic Web项目构面版本更改为2.5

答案 26 :(得分:0)

enter image description here

在运行servelet之前,请考虑清理项目。这将删除所有损坏的文件。

答案 27 :(得分:0)

我通过简单地关闭eclipse中的所有其他项目解决了我的问题。

答案 28 :(得分:0)

尝试从maven本地存储库(.m2)中删除所有项目的依赖项。

路径: C:\ Users \ user_name \ .m2 \ repository

关闭eclipse并再次打开它会自动下载所有依赖项。

答案 29 :(得分:0)

在我的情况下,问题是由传递的参数中的语法错误引起的。钥匙和钥匙之间有一个空格。使用'-D'时的值

即。

-DMyArg= MyValue

而不是

-DMyArg=MyValue

答案 30 :(得分:0)

首先在Web.xml中检查有多个&lt; servlet映射&gt;不同名称的标签 如果是,请删除不需要的内容并运行..这应该可以正常工作

要解决此问题,您必须删除目录中的.snap文件。

转到你的Eclipse工作区 UsingPath - &gt; workspace.metadata.plugins \ org.eclipse.core.resources \ snapfile

删除快照文件。

删除此文件后, 删除Tomcat服务器 然后还删除被选为Apache tomcat的服务器运行时。 然后再次添加服务器并转到项目 - &gt;属性 - &gt;项目构面 - &gt;右侧您将找到详细信息和运行时选项卡。 单击运行时并选中已存在的Apache框(如果不存在则添加)

更改端口号并运行它。

答案 31 :(得分:0)

尝试上述所有步骤后,问题仍未解决。

最后通过以下步骤解决了问题。

1-检查工作空间目录中的.log文件。 Java版本问题

&#34;引起:java.io.IOException:无法运行程序&#34; C:\ jdk1.7.0_45 \ bin \ java&#34;:CreateProcess error = 193,%1不是有效的Win32应用     在java.lang.ProcessBuilder.start(未知来源)     在java.lang.Runtime.exec(未知来源)     在java.lang.Runtime.exec(未知来源)     在org.eclipse.debug.core.DebugPlugin.exec(DebugPlugin.java:869)     ......还有80多个

引起:java.io.IOException:CreateProcess error = 193,%1不是有效的Win32应用程序     at java.lang.ProcessImpl.create(Native Method)     在java.lang.ProcessImpl。(未知来源)     在java.lang.ProcessImpl.start(未知来源)&#34;

我安装了正确的操作系统兼容JDK,问题已解决。 PS:我已经通过eclipse明确设置了JDK路径(Window-&gt; preference-&gt;安装了JRE)但是在设置了正确的JDK路径后,它对我来说很好。

答案 32 :(得分:0)

在eclipse服务器选项卡中双击apache服务器。现在将tomcat管理端口更改为8010, http端口更改为8082,Ajp端口更改为8011。

答案 33 :(得分:0)

在我的情况下,问题是另一个Tomcat实例正在运行。我从服务中停止了它,问题得到了解决