“在本地主机上的服务器Tomcat v7.0服务器无法启动”,没有堆栈跟踪,而在terminal工作

所以这个项目在周末之前工作得很好(还有其他的问题,但至lessTomcat已经启动了)。 现在,当我尝试启动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 Build id:20121004-1855

我search了几个论坛试图find解决scheme,但无济于事! 请帮助有需要的人。

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

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

删除这个文件后,你可以启动Eclipse没有问题。

** 1。 从Windows>显示视图>服务器菜单中打开服务器选项卡

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

  2. 通过在服务器选项卡上新build>服务器创build一个新的服务器

  3. 点击“configuration运行环境…”链接

  4. selectApache Tomcat v7.0服务器并将其删除。 这将删除Tomcat服务器configuration。 这是许多人犯错的地方 – 他们删除服务器,但不删除运行时环境。

  5. 点击确定并退出上面的屏幕。

  6. 从下面的屏幕中selectApache Tomcat v7.0服务器,然后单击下一步button:

  7. 浏览到Tomcat安装目录

  8. 点击下一步,select你想要部署的项目:

  9. 点击完成后添加您的项目

  10. 现在启动你的服务器。 这将解决您的服务器超时或任何旧服务器configuration的问题。 这个解决scheme也可以用来解决“端口更新没有发生”的问题。**

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

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

如果删除此文件夹有任何问题,然后重新启动您的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> 

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

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

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

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

1.清洁项目和服务器

要么

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

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

要么

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

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

在我的情况下,问题是在web.xml文件中,我忘了在URL模式之前用“/”(例如/login.do)。

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

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

1)项目>属性

2)在侧面菜单中select“Targeted runtimes”

3)selectTomcat(点击应用)

4)点击确定

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

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

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

 <?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>标签closures它。 完成。

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

一切工作正常,一秒钟,然后我的服务器开始给我这个错误。 我经历了所有在这里提到的答案,什么对我来说是这个简单的解决scheme:

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

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

PS改变工作空间绝对不行,因为如果问题出现在你的项目中,那么当你导入项目时,它仍然会出现在新的工作空间中!

尝试删除服务器控制台中现有的Tomcat服务器,如果你没有控制台,那么你可以去“显示视图 – >服务器”,然后通过右键点击删除服务器。 添加新的服务器,这一定会帮助你。

我也有同样的问题,这里的答案没有帮助我的情况。 所以经过几个小时的search,我find了解决scheme,我希望它能帮助别人。

这是任何获得“本地主机上的服务器Tomcat v7.0服务器无法启动”的人的解决scheme。 在eclipse中configurationtomcat服务器并尝试在其上运行项目之后出现错误。

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

希望这可以帮助。

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

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

RefreshServlet.java

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

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

所以,我的底线build议是,如果没有任何其他的技巧正在工作,那么尝试删除任何最新的servlets程序或任何你刚才创build的类之前得到这个错误,它也可以为你工作得很好,其余的应用程序。

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

检查你的web描述符(web.xml)或你的servlets(在你注释的地方,检查是否有'@WebServlet(“/ servlet_name”)')任何重复。如果有的话,删除它们。

你可以右键点击apache-tomcat,select属性,点击恢复默认。

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

 -DMyArg= MyValue 

代替

 -DMyArg=MyValue 

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

在我的eclipse工作区中,通过执行以下步骤来解决问题。 窗口 – >首选项 – >networking连接 – >将“活动提供者”更改为“直接”,而不是“本机”。 你可以试试。

如果所有给定的答案都不适合你,那么就改变你当前的工作区。

文件 – >切换工作空间

这将解决你的问题。

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

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

最后用下面的步骤解决。

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

“由于:java.io.IOException:无法运行程序”C:\ jdk1.7.0_45 \ bin \ java“:CreateProcess错误= 193,%1不是在java.lang.ProcessBuilder.start中的有效Win32应用程序来源)在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在java.lang.ProcessImpl.create(Native Method)上的java.lang.ProcessImpl。(Unknown Source)时不是有效的Win32应用程序。 ProcessImpl.start(未知来源)“

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

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

然后当我开始eclipse,并试图运行我的项目与jsp的和servlets我得到了这个相同的错误。

我尝试了所有的答案,但它仍然没有改变任何东西。 对我来说,解决scheme是把所有的tomcat JAR文件放到项目库中,像这样:

  1. 转到Eclipse
  2. 右键单击您所工作的项目>构buildpath>configuration构buildpath…>库>添加外部JAR
  3. 从Tomcat / bin和Tomcat / lib中select所有的JAR文件
  4. 按“确定”

现在你应该find他们在你的项目的库文件夹,然后它应该工作。

第一次在你的Web.xml中检查有多个不同名称的<servlet mapping>标签 如果是这样删除不需要的和运行..这应该工作正常

要么

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

转到您正在使用的Eclipse的Workspace – > workspace.metadata.plugins \ org.eclipse.core.resources \ snapfile

删除快照文件。

删除此文件后, 删除Tomcat服务器 然后删除select为Apache Tomcat的服务器运行时。 然后再次添加服务器,并转到项目 – >属性 – >项目方面 – >右侧,你会发现详细信息和运行时选项卡。 点击运行时,并检查已经存在的Apache的框(如果不存在添加它)

更改端口号并运行它。

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

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

在这里输入图像描述

步骤#2:右键单击服务器,selectProperties ,你会看到下面的窗口。 点击Switch Location ,它会将位置更改为下图所示的默认位置。 Apply ,然后OKclosures窗口。

在这里输入图像描述

步骤#3双击Tomcat服务器,打开Overview选项,如下图所示。 Server Locations部分对我来说是活跃的,当我这样做(它在图像中显示为不活动,因为我已经在我的末尾做了,我有我的服务器运行),我select了第二个单选button选项是Use Tomcat installation (takes control of Tomcat installation) 。 然后我closures了这个选项,保存更改时提示并启动我的服务器。 它开始工作正常。

在这里输入图像描述

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

path: C:\ Users \ user_name \ .m2 \ repository

closures日食并再次打开它会自动下载所有的依赖关系。

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