在终端上运行时,“没有在本地跟踪的本地服务器Tomcat v7.0服务器启动”,没有堆栈跟踪


81

因此,有了这个在周末之前工作正常的项目(还有其他问题,但至少是Tomcat启动的)。现在,当我尝试启动Tomcat服务器时,它立即显示以下错误:

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

但是,我可以通过Terminal很好地启动Tomcat,并且此问题在Eclipse中发生(针对Web开发人员的Eclipse Java EE IDE。版本:Juno Service Release 1 Build ID:20121004-1855

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


发布完整的stacktrace错误?
阿美(Ami)2012年

@ILLA没有。只是。这是最奇怪的事情……
Marvin Effing 2012年

好问题,我遇到过的最奇怪的错误。哑剧发生在Fedora 17中。日食可从Fedora存储库下载。
huahsin68

通过删除Servers文件夹中的特定文件夹,在Eclipse中删除Server,然后在Eclipse中创建新服务器(“服务器”选项卡)来解决
CodyBugstein 2014年

4
这是开发人员面临的常见问题之一,根据我的经验,我可以建议大多数时间错误是由于web.xml文件引起的。尝试删除一些新创建的servlet和servlet-mapping标签。
Prateek Joshi 2015年

Answers:


58

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

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

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


33
请把这个文件放在哪里?我没有这样的文件
William Kinaan 2013年

18
该目录中没有此类文件。
MrYo

34
@MarvinEffing我删除了此文件,但对我没有帮助!
Lrrr

1
这对我有用,但是您能解释一下为什么起作用吗?这是什么文件 为什么会导致错误?另外,对于看不到文件的人:尝试重新启动Eclipse,这就是我要做的。
凯文·沃克曼

1
删除快照文件(它是0.snap)之后,我去了Eclipse,右键单击服务器并选择Clean。然后启动服务器,它将正常工作。
sunlover3 '16

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

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

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

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

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

  6. 单击确定,然后退出上面的屏幕。

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

  8. 浏览到Tomcat安装目录

  9. 单击下一步,然后选择要部署的项目:

  10. 添加项目后单击完成

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


11
不幸的是,这并不能解决任何问题... Eclipse Kepler,Windows 7 32位,Tomcat 7 ...我仍在寻找真正的解决方案
Miklos Krivan 2014年

2
我从Eclipse中删除了tomcat配置,然后再次添加了服务器。为我工作。Eclipse Juno。
user2771655

1
家伙很多家伙!所以删除了运行时环境Tric吗?
Rahal Kanishka,2016年

1
就像@MiklosKrivan所说的那样-这对我也不起作用,但是我很好奇为什么会这样以及如何对其他人起作用,进而想知道为什么它对我不起作用。
晚上狂风'18

37

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

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

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


我没有看到文件夹folder.name的名称?我正在使用ubuntu 12.04
MMMMS 2015年

@MMMMS,隐藏的文件和目录前面带有点。在大多数* nix系统下,您可以使用ls -a
FRK

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>

但我将其更改为

<!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>

现在服务器已正确加载。奇怪。


2
我在@WevServlet路径不正确的注解中也遇到了类似的问题。
thomas88wp 2015年

2
完全是@ thomas88wp,您可以使用注释@WebServlet并删除servlet映射,或者相反。谢谢您解决了我的问题:)
L.Zaki 2015年

谢谢!我正在抢夺头,但这有所帮助!
Shivangi Gupta'4

15

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

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

1.清理项目和服务器

要么

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

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

要么

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

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

1
我删除了temp文件夹,现在服务器成功启动,但是它没有运行我的Web应用程序。
Rahul Munjal 2015年

在Eclipse 2019-03和Tomcat 8.5.43的Ubuntu 18.04上为我工作:)
yanike

右键单击Tomcat和Clean
Chinmoy,

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


肯定是这样。我两次映射相同的servlet,此修复程序有效。
乔治

10

上面提到的答案都没有对我有用。我在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)。然后关闭该选项,在出现提示时保存更改并启动服务器。它开始工作正常。

在此处输入图片说明


1
非常感谢,这是对我有用的唯一选择!
Mike B.

谢谢,这解决了这个问题。令人惊讶的是,真正有效的解决方案获得很少的选票。
科学方法

7

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

如上文@ Ajak6所述,解决我问题的方法是,将Servlet API作为项目的外部JAR库添加。

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

1)项目>属性

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

3)选择Tomcat(单击“应用”)

4)点击确定


就我而言,它可以与Annotations一起正常工作,但是当我在web.xml中添加servlet配置时-我忘记了输入/,但出现了这个问题。幸运的是,这是我快速解决的问题。谢谢Emad!
ppalancica


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>标签将其关闭。做完了


开始,错误消失了。但是不听。元素是什么?
Yergalem

5

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


1
我在web.xml中的<servlet>和<servlet-mapping>之间感到困惑,并收到此错误。谢谢!您的解决方案为我工作。
2014年

1
好的,对您也有好处,当然,如果您对它们感到困惑,服务器将无法启动,因为<servlet>定义了容器,并且<servlet-mapping>为http请求映射了servlet和url。
REDA 2014年

天哪,简直不敢相信。我遇到过同样的问题。谢谢你,我不能告诉你我有多谢你。
Rakesh Yadav

3

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

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

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

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


2

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


我已阅读所有评论。.这是对我有用的唯一选择。
Vineela Thonupunuri

2

我遇到了同样的问题,这里没有答案可以解决我的问题。因此,经过几个小时的搜索,我找到了适合我的解决方案,希望对您有所帮助。

对于任何人“本地主机的服务器Tomcat v7.0服务器无法启动”的人,这都是一个解决方案。在Eclipse中配置tomcat服务器并尝试在其上运行项目后发生错误。

在eclipse中配置tomcat服务器之后,您需要从tomcat复制“ WEB-INF”目录。C:\ ...%TOMCAT_HOME%\ webapps \ ROOT,您将找到“ WEB-INF”,只需将其复制并粘贴到Eclipse项目中的WebContent文件夹中即可(覆盖web.xml文件)。

希望这可以帮助。


2

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


经过上述所有尝试后,这实际上指导了我。它无法使用某些依赖关系
Young Emil

2

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

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

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

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

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


2

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

2-删除tmp文件夹。

3-重新启动Eclipse IDE


1

在我的Eclipse工作区中,通过执行以下步骤解决了该问题。窗口->首选项->网络连接->将“活动提供程序”更改为“直接”,而不是“本地”。您可以尝试一下。


1

这个周末我面临着类似的问题。尝试了上述所有技巧,但它们对我都不起作用。(在Eclipse LUNA中工作)

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

刷新Servlet.java

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

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

因此,我的底线建议是,如果没有其他窍门在起作用,请尝试在获取此错误之前删除任何最新的servlet或您刚刚创建的任何类,这对于其余应用程序也可能适用。

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


1
您可能有多个servlet在同一个URL上侦听,这将导致Tomcat无法启动。
alttag

1

检查您的Web描述符(web.xml)或Servlet(在进行注释的位置检查sor之类的内容,例如'@WebServlet(“ / servlet_name”)')是否有重复项。如果有,请删除它们。



0

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


0

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

-DMyArg= MyValue

代替

-DMyArg=MyValue

0

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


0

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

文件->切换工作区

这将解决您的问题。


最后也是不错的选择。但是对于改变工作空间有些头痛。
Sagar007

0

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


0

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

最后,它通过以下步骤解决了。

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

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

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

我已经安装了与OS兼容的正确JDK,并且问题已解决。PS:我已经通过Eclipse(Window-> preference-> installed JRE)显式设置了JDK路径,但是在设置了正确的JDK路径后,它对我来说很好用。


0

首先,在您的Web.xml中检查是否有多个具有不同名称的<servlet映射>标记。 如果是,则删除不需要的标记并运行。

要么

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

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

删除快照文件。

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

更改端口号并运行它。


0

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

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

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.