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

Mar*_*ing 74 eclipse tomcat

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

Server Tomcat v7.0 Server at localhost failed to start.
Run Code Online (Sandbox Code Playgroud)

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

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

小智 97

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

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

  3. 转到新建一个新服务器?服务器选项卡上的服务

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

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

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

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

  8. 浏览到Tomcat安装目录

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

  10. 添加项目后单击"完成"

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

  • 不幸的是,这并没有解决任何问题... Eclipse Kepler,Windows 7 32位,Tomcat 7 ......我仍然在寻找真正的解决方案 (8认同)
  • 我从Eclipse中删除了tomcat配置,然后再次添加了服务器。为我工作。Eclipse Juno。 (2认同)

Ami*_*Ami 55

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

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources
Run Code Online (Sandbox Code Playgroud)

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

  • @MarvinEffing我删除了这个文件,但它没有帮助我! (33认同)
  • 请问这个档案在哪里?我没有这样的档案 (30认同)
  • 该目录中没有这样的文件. (16认同)

jai*_*eep 38

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

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core
Run Code Online (Sandbox Code Playgroud)

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


Cod*_*ein 22

就我而言,问题出在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>
Run Code Online (Sandbox Code Playgroud)

但我把它改成了样子

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

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

  • 我有一个类似的问题,``@ WevServlet``注释带有不正确的路径. (2认同)
  • 正是@thomas88wp,您可以使用注释`@WebServlet`并删除servlet映射或相反。谢谢你解决了我的问题:) (2认同)

小智 12

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

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

1.清洁项目和服务器

要么

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

<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources
Run Code Online (Sandbox Code Playgroud)

要么

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

<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core
Run Code Online (Sandbox Code Playgroud)


C0d*_*8ug 12

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

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

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

@WebServlet("/Login")
public class Login extends HttpServlet {
}
Run Code Online (Sandbox Code Playgroud)

要么

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

原因:

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

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

可选的.根据servlet 3.0规范

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


Joh*_*ohn 8

上面提到的答案都不适合我.我在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).然后我关闭了此选项,在提示时保存了更改并启动了我的服务器.它开始工作正常.

在此输入图像描述


Ema*_*mid 7

在我的例子中,问题出在web.xml文件中,我忘了在url-pattern之前加上"/"(例如/login.do).

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

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

1)项目>属性

2)在侧面菜单上选择"Targeted runtimes"

3)选择Tomcat(点击申请)

4)点击确定


Vib*_*waj 6

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

  • 那将会逃避不解决的问题. (32认同)

dja*_*ude 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>
Run Code Online (Sandbox Code Playgroud)

在该<?xml version="1.0" encoding="UTF-8"?>行的下方,添加一个标签<element>,并在</element>标签底部将其关闭.完成.


RED*_*EDA 5

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