82

所以得到了这个在周末之前运行良好的项目(还有其他问题,但至少启动了 Tomcat)。现在,当我尝试启动 Tomcat 服务器时,它会立即给出以下错误:

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

但是,我可以通过终端很好地启动 Tomcat,并且这个问题发生在 Eclipse 中(面向 Web 开发人员的 Eclipse Java EE IDE。版本:Juno Service Release 1 Build id:20121004-1855

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

4

34 回答 34

108
  1. 从 Windows 中打开服务器选项卡 → 显示视图 → 服务器菜单

  2. 右键单击服务器并将其删除

  3. 通过“新建”→“服务器”选项卡上的服务器来创建新服务器

  4. 单击“配置运行时环境...”链接

  5. 选择 Apache Tomcat v7.0 服务器并将其删除。这将删除 Tomcat 服务器配置。这是很多人犯错误的地方——他们删除了服务器但没有删除运行时环境。

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

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

  8. 浏览到 Tomcat 安装目录

  9. 单击下一步并选择您要部署的项目:

  10. 添加项目后点击完成

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

于 2013-07-08T06:13:17.817 回答
60

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

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

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

于 2012-11-06T04:32:07.473 回答
38

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

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

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

于 2013-08-01T06:30:28.750 回答
23

就我而言,问题出在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>

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

于 2014-08-29T03:53:05.433 回答
17

本地主机上的服务器 Tomcat v7.0 服务器无法启动。

此错误解决以下三种情况

1.清理项目和服务器

或者

2.从这个目录中删除 .snap 文件

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

或者

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

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core
于 2013-11-23T16:53:39.480 回答
13

我遇到了这个问题,因为我在 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

于 2015-05-09T12:43:58.243 回答
11

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

步骤#1:单击Servers选项卡以查看您的服务器。就我而言,它如下所示:

在此处输入图像描述

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

在此处输入图像描述

步骤#3双击 Tomcat 服务器,这将打开Overview选项,如下图所示。当我这样做时,该Server Locations部分对我来说是活动的(它在图像中显示为非活动,因为我已经在我的最后这样做并且我的服务器正在运行)并且我选择了第二个单选按钮选项,即Use Tomcat installation (takes control of Tomcat installation). 然后我关闭了这个选项,在提示时保存了更改并启动了我的服务器。它开始工作正常。

在此处输入图像描述

于 2017-06-09T18:53:28.800 回答
8

就我而言,问题出在 web.xml 文件中,我忘记在 url 模式前加上“/”(例如 /login.do)。

正如上面@Ajak6 所提到的,解决我的问题的方法是将servlet API 添加为项目的外部JAR 库。

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

1) 项目 > 属性

2)在侧面菜单上选择“目标运行时”

3)选择Tomcat(点击应用)

4)点击确定

于 2016-01-20T15:09:11.653 回答
7

创建一个新的工作空间也可以解决这个问题。。

于 2013-07-20T06:54:31.520 回答
6

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

于 2014-04-25T10:58:21.157 回答
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>标签关闭它。完毕。

于 2017-03-29T14:28:45.387 回答
4

一秒钟一切正常,然后我的服务器开始给我这个错误。我浏览了这里提到的所有答案,对我有用的是这个简单的解决方案:

删除服务器,然后配置一个新的

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

PS 更改工作区绝对不会对您有任何好处,因为如果问题出在您的项目中,那么当您导入项目时,它仍然会出现在新的工作区中!

于 2016-08-08T10:23:32.547 回答
2

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

于 2014-03-11T06:58:26.410 回答
2

就我而言,我确实将我的 tomcat 文件夹(其中包含所有文件的文件夹)部署到了另一个地方。

然后,当我启动 eclipse 并尝试使用 jsp 和 servlet 运行我的项目时,我得到了同样的错误。

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

  1. 转到日食
  2. 右键单击您处理的项目 > 构建路径 > 配置构建路径... > 库 > 添加外部 JAR
  3. 从 Tomcat/bin 和 Tomcat/lib 中选择所有 JAR 文件
  4. 按“确定”

现在您应该在项目的 Libraries 文件夹中找到它们,然后它应该可以工作了。

于 2014-04-03T11:20:53.223 回答
2

我有同样的问题,这里的答案都没有帮助我的情况。因此,经过几个小时的搜索,我找到了适合我的解决方案,我希望它能对其他人有所帮助。

这是任何获得“本地主机上的服务器 Tomcat v7.0 服务器启动失败”的解决方案。在eclipse中配置tomcat服务器并尝试在其上运行项目后出错。

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

希望这可以帮助。

于 2014-09-29T19:17:36.177 回答
2

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

于 2015-01-21T22:24:24.997 回答
2

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

2-删除tmp文件夹。

3-重新启动您的 Eclipse IDE

于 2018-06-28T10:34:58.567 回答
1

在我的 Eclipse 工作区中,通过执行以下步骤解决了它。Window --> Preferences --> Network Connections --> 将“Active Provider”更改为“Direct”,而不是“Native”。你可以试试。

于 2014-07-03T12:01:47.887 回答
1

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

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

RefreshServlet.java

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

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

所以,我的底线建议是,如果没有任何其他技巧在起作用,那么在出现此错误之前尝试删除任何最新的 servlet 或您刚刚创建的任何类,它对于应用程序的其余部分也可能适用。

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

于 2015-08-23T06:00:34.053 回答
1

检查您的 Web 描述符 (web.xml) 或您的 servlet(在您注释的地方,检查类似 '@WebServlet("/servlet_name")' 之类的东西)是否有任何重复项。如果有,请删除它们。

于 2016-08-05T08:53:09.183 回答
1

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

于 2019-10-03T11:06:33.960 回答
0

您可以右键单击 apache-tomcat,选择属性,单击恢复默认值。

于 2013-11-05T22:07:34.833 回答
0

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

IE

-DMyArg= MyValue

代替

-DMyArg=MyValue
于 2014-02-11T20:58:45.973 回答
0

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

于 2014-05-18T18:58:53.980 回答
0

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

文件-> 切换工作区

这将解决你的问题。

于 2015-05-31T15:49:04.140 回答
0

就我而言,问题在于正在运行的另一个 Tomcat 实例。我从服务中停止了它,问题得到了解决

于 2016-07-25T05:46:24.520 回答
0

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

最后通过以下步骤解决。

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

“原因:java.io.IOException:无法运行程序“C:\jdk1.7.0_45\bin\java”:CreateProcess 错误=193,%1 在 java.lang.ProcessBuilder.start 处不是有效的 Win32 应用程序(未知Source) at java.lang.Runtime.exec(Unknown Source) at java.lang.Runtime.exec(Unknown Source) at org.eclipse.debug.core.DebugPlugin.exec(DebugPlugin.java:869) ... 80 更多

原因:java.io.IOException: CreateProcess error=193,%1 不是 java.lang.ProcessImpl.create(Native Method) at java.lang.ProcessImpl.(Unknown Source) at java.lang 的有效 Win32 应用程序。 ProcessImpl.start(未知来源)“

我已经安装了正确的操作系统兼容的 JDK 并且问题已解决。PS:我已经通过eclipse(Window->preference->installed JRE)明确设置了JDK路径,但是在设置了正确的JDK路径之后,它对我来说工作正常。

于 2016-10-21T11:02:48.890 回答
0

第一次检查您的 Web.xml 是否有多个具有不同名称的 <servlet mapping> 标签 如果是这样删除不需要的标签并运行..这应该可以正常工作

或者

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

转到您正在使用的 Eclipse 工作区 UsingPath --> workspace.metadata.plugins\org.eclipse.core.resources\snapfile

删除快照文件。

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

更改端口号并运行它。

于 2017-04-14T12:54:29.980 回答
0

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

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

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

于 2017-08-27T15:00:18.170 回答
0

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

于 2017-11-07T16:26:21.517 回答
0

在此处输入图像描述

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

于 2018-02-09T07:09:09.857 回答
0

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

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

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

于 2018-06-22T14:10:33.063 回答
0

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

于 2018-11-23T03:43:18.917 回答
0

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

于 2020-07-22T19:23:00.483 回答