“在本地主机上的服务器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>显示视图>服务器菜单中打开服务器选项卡
-
右键单击服务器并将其删除
-
通过在服务器选项卡上新build>服务器创build一个新的服务器
-
点击“configuration运行环境…”链接
-
selectApache Tomcat v7.0服务器并将其删除。 这将删除Tomcat服务器configuration。 这是许多人犯错的地方 – 他们删除服务器,但不删除运行时环境。
-
点击确定并退出上面的屏幕。
-
从下面的屏幕中selectApache Tomcat v7.0服务器,然后单击下一步button:
-
浏览到Tomcat安装目录
-
点击下一步,select你想要部署的项目:
-
点击完成后添加您的项目
-
现在启动你的服务器。 这将解决您的服务器超时或任何旧服务器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规范
本地主机上的服务器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”如下所示:
所以,练习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文件放到项目库中,像这样:
- 转到Eclipse
- 右键单击您所工作的项目>构buildpath>configuration构buildpath…>库>添加外部JAR
- 从Tomcat / bin和Tomcat / lib中select所有的JAR文件
- 按“确定”
现在你应该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
,然后OK
closures窗口。
步骤#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中的所有其他项目,我解决了我的问题。