“ ServerTomcatv7.0 Server at localhost 未能启动”在终端工作时没有堆栈跟踪

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

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

然而,我可以通过 Terminal 很好地启动 Tomcat,这个问题正在 Eclipse (< em > Eclipse Java EE IDE for Web Developers)中出现。版本: Juno 服务版本1 Build id: 20121004-1855 )

我搜索了几个论坛,试图找到一个解决方案,但没有结果。

735979 次浏览

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

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

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

  1. 从 Windows 打开 Servers 选项卡→ Show View → Servers 菜单

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

  3. 通过在服务器选项卡上新建→服务器来创建一个新的服务器

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

  5. 选择 Apache Tomcat v7.0服务器并删除它。这将删除 Tomcat 服务器配置。这是很多人做 错误-他们删除了服务器,但没有删除执行期函式库的地方

  6. 点击确定并退出上面的屏幕现在。

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

  8. 浏览到 Tomcat 安装目录

  9. 单击 Next 并选择要部署的项目:

  10. 添加项目后单击 Finish

  11. 现在启动服务器。这将修复您的服务器超时或旧服务器配置的任何问题。这个解决方案也可以用来修复“端口更新没有发生”的问题。

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

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

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

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

您可以右键单击 apache-tomcat,选择属性,单击 RestoreDefault。

本地主机上的服务器 Tomcat v7.0 Server 启动失败。

这个错误解决了以下三种情况

1. 清理项目和服务器

或者

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

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

或者

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

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

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

也就是说。

-DMyArg= MyValue

而不是

-DMyArg=MyValue

尝试删除服务器控制台中现有的 tomcat 服务器,如果您没有控制台,那么您可以进入“ Show view-> server”,然后右键单击它删除服务器。添加新的服务器,这肯定会对您有所帮助。

在我的例子中,我将 tomcat 文件夹(包含所有文件的文件夹)部署到了另一个位置。

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

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

  1. 去 Eclipse
  2. 右键单击您正在进行的项目 > Build Path > ConfigureBuild Path... > Library > Add ExternalJAR
  3. 从 Tomcat/bin 和 Tomcat/lib 中选择所有 JAR 文件
  4. 按“确定”

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

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

双击 eclipse server 选项卡中的 apache server。现在将 tomacat 管理端口更改为8010, Http 端口更改为8082,Ajp 端口更改为8011。

在我的 Eclipse 工作区中,通过执行以下步骤解决了这个问题。 窗口-> 首选项-> 网络连接-> 将“活动提供程序”改为“直接”,而不是“原生”。

在我的案例中,问题出在 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>

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

我也有同样的问题,这里没有答案对我的案子有帮助。 因此,经过几个小时的寻找,我找到了我的解决办法,我希望它能帮助其他人。

对于那些“ Server Tomcat v7.0 Server at localhost 启动失败”的人来说,这是一个解决方案在 eclipse 中配置 tomcat 服务器并尝试在其上运行项目之后发生错误。

在 Eclipse 中配置 tomcat 服务器之后,您需要从 tomcat 中复制“ WEB-INF”目录。C: ...% TOMCAT _ HOME% webapps ROOT 和它们的“ WEB-INF”只需要复制并粘贴到 Eclipse 项目中的 WebContent 文件夹中(覆盖 web.xml 文件)。

希望这个能帮上忙。

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

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

理由:

我使用 apache tomcat 7.0,它支持 servlet 3.0。

对于 Java EE 注释,标准的 web.xml 部署描述符是

可选。根据 servlet 3.0规范,在

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

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

File-> switch worksspace

这能解决你的问题。

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

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

RefreshServlet.java

以便练习 servlet 来理解“ AutoRefresh”的功能。 当我从应用程序中删除这个 servlet 时,它工作得很好,但是当我试图添加并运行这个 servlet 时,它会出现同样的错误“ Apache Tomcat v7.0挂起失败”

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

因此,我的底线建议是,如果没有任何其他技巧可以工作,那么尝试删除任何最新的 servlet 或任何您刚刚创建的类之前得到这个错误,它可能工作良好,你也为应用程序的其余部分。

希望能有进一步的解释,谢谢

在我的例子中,问题出现在 web.xml 文件中,我忘记在 url 模式前面加上一个“/”(例如/login.do)。

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

然而,我找到了一种更好的方法,按照以下步骤将 Tomcat 添加到目标运行时;

1)工程项目 > 物业

2)在旁边的选单上选择「目标运行时间」

3)选择 Tomcat (单击 application)

4)点击确定

在我的例子中,问题在于运行的另一个 Tomcat 实例。我停止了服务,问题解决了

检查你的 web 描述符(web.xml)或者你的 servlet (在你做注释的地方,检查像“@WebServlet (“/servlet _ name”)”这样的东西)是否有重复的内容。如果有的话,删除它们。

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

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

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

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

在尝试了上面提到的所有步骤之后,问题没有得到解决。

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

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

”由于: java.io.IOException: 无法运行程序“ C: jdk1.7.0 _ 45 bin java”: CreateProcess error = 193,% 1不是有效的 Win32应用程序 在 java.lang. ProcessBuilder.start (未知源) 在 java.lang. Runtime.exec (未知源) 在 java.lang. Runtime.exec (未知源) DebugPlugin.exec (DebugPlugin.java: 869) 还有80个

由 java.io.IOException: CreateProcess error = 193引起,% 1不是有效的 Win32应用程序 在 java.lang. ProcessImp.create (本机方法) 在 java.lang. ProcessImpl (未知来源) 在 java.lang. ProcessImp.start (未知来源)”

我已经安装了正确的操作系统兼容的 JDK,问题解决了。 PS: 我已经通过 eclipse 显式地设置了 JDK 路径(Window-> 偏好选项-> 安装的 JRE) ,但是在设置了正确的 JDK 路径之后,它对我来说工作得很好。

打开你的 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>标签关闭它在最底部。完成。

首先在 Web.xml 中检查有多个具有不同名称的 < servlet 映射 > 标记 如果是这样,删除不需要的,然后运行. . 这应该可以很好的工作

或者

要解决这个问题,您必须删除位于目录中的. nap 文件。

进入你所在的 Eclipse 工作区 UsingPath —— > workspace.metadata.plugins org.eclipse.core.resources 快照文件

删除快照文件。

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

更改端口号并运行它。

上面提到的答案对我都不起作用。我在 Eclipse IDE 中使用 Tomcat 9。因此,我在 Eclipse 霓虹灯上尝试了以下步骤。

步骤 # 1: 点击 Servers选项卡查看服务器:

enter image description here

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

enter image description here

步骤 # 3 双击 Tomcat Server,它将打开 Overview选项,如下图所示。当我这样做的时候,Server Locations部分是活动的(它在图像中显示为非活动状态,因为我已经在我的一端做了,我已经让我的服务器运行) ,我选择了第二个单选按钮选项是 Use Tomcat installation (takes control of Tomcat installation)。然后关闭该选项,在提示时保存更改并启动服务器。一开始还不错。

enter image description here

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

路径: C: Users user _ name. m2仓库

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

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

enter image description here

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

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

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

您可以通过在 project properties 中更改 project facet 版本来在 eclipse 中更改 project facet 版本—— > 在搜索框中搜索“ facet”将 Dynamic Web project facet 版本更改为2.5

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

2-删除 tmp 文件夹。

3-重新启动 Eclipse IDE

创建新项目并将所有文件导入到新项目。

我通过右键单击服务器选项卡中的 Tomcat 服务器并单击“ Clean Tomcat Work Directory”修复了这个问题

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

如果上述所有答案都不起作用,一个可能的解决方案可能是-

检查项目的 server.xml 中是否有多个 <Context>用于相同的资源。如果是,删除其中一个副本,然后再试一次。