所以这个项目在周末之前工作得很好(有其他问题,但至少Tomcat推出)。现在,当我尝试启动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 构建ID:20121004-1855 )
我搜索了几个试图寻找解决方案的论坛,但无济于事!请帮助有需要的人。
答案 0 :(得分:93)
从Windows→显示视图→服务器菜单
右键单击服务器并将其删除
通过在服务器选项卡上执行新建→服务器
单击“配置运行时环境...”链接
选择Apache Tomcat v7.0服务器并将其删除。这将删除Tomcat服务器配置。这是许多人 错误的地方 - 他们删除服务器但不删除运行时环境。
单击确定并立即退出上面的屏幕。
从下面的屏幕中,选择Apache Tomcat v7.0服务器,然后单击下一步按钮。
浏览Tomcat安装目录
单击“下一步”并选择要部署的项目:
点击添加项目后的完成
现在启动您的服务器。这将修复服务器超时或旧服务器配置的任何问题。此解决方案还可用于修复“端口更新未发生”问题。
答案 1 :(得分:55)
要解决此问题,您必须删除目录中的.snap
文件:
<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources
删除此文件后,您可以毫无问题地启动Eclipse。
答案 2 :(得分:34)
要解决此问题,您必须删除以下目录中的 tmp文件夹
<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core
如果删除此文件夹时出现任何问题,请重新启动eclipse,然后再次删除该文件夹。
答案 3 :(得分:21)
就我而言,问题出现在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>
现在服务器正常加载。 奇怪。
答案 4 :(得分:12)
我遇到了这个问题,因为我在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规范答案 5 :(得分:11)
localhost上的服务器Tomcat v7.0服务器无法启动。
此错误解决了以下三种情况
1.清洁项目&amp;服务器
或者
2.从此目录中删除.snap文件
<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources
或者
3.从此目录中删除临时文件
<workspace-directory>\.metadata\.plugins\org.eclipse.wst.server.core
答案 6 :(得分:7)
就我而言,问题发生在web.xml文件中,我忘了在url-pattern之前加上“/”(例如/login.do)。
如上所述,@ Ajak6通过将servlet API添加为项目的外部JAR库,解决了我的问题。
但是,我发现了一种更好的方法,将Tomcat添加到目标运行时,如下所示;
1)项目&gt;特性
2)在侧边菜单上选择“Targeted runtimes”
3)选择Tomcat(点击申请)
4)点击确定
答案 7 :(得分:6)
创建新工作区也可以解决此问题..
答案 8 :(得分:6)
上面提到的答案都不适合我。我在Eclipse IDE中使用Tomcat 9。因此,我在Eclipse Neon上尝试了以下步骤。
步骤1:点击Servers
标签查看您的服务器。就我而言,它看起来如下:
步骤2:右键单击服务器,选择Properties
,您将看到以下窗口。点击Switch Location
,它会将位置从默认位置更改为下图所示。点击Apply
然后OK
关闭窗口。
步骤3 双击Tomcat服务器,将打开Overview
选项,如下图所示。当我这样做时,Server Locations
部分对我来说是活跃的(它在图像中显示为非活动状态,因为我已经在我的端部执行了操作并且我的服务器正在运行)并且我选择了第二个单选按钮选项{{1 }}。然后我关闭了此选项,在提示时保存了更改并启动了我的服务器。它开始工作正常。
答案 9 :(得分: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>
标记将其关闭。完成。
答案 10 :(得分:5)
我在tomcat服务器上遇到了同样的问题,但是当我深入检查时,我发现我在我的web.xml文件中添加了一个新标签,服务器不接受它,所以检查你的文件是否有任何更新然后重启你的雄猫将会很好。
答案 11 :(得分:3)
一秒钟工作正常,然后我的服务器开始给我这个错误。我仔细阅读了这里提到的所有答案,对我来说有用的是这个简单的解决方案:
删除服务器,然后配置新服务器
如果您确定没有更改任何内容并且刚刚弹出错误,请不要开始删除.snap文件或其他临时文件。这样做只会导致更多问题。如果由于您所做的某些更改而发生错误,则此错误肯定是因为web.xml文件中的某些错误。
P.S。更改工作区对你来说绝对没有用,因为如果你的项目存在问题,那么当你导入项目时它仍会出现在新的工作空间中!
答案 12 :(得分:2)
1-转到您的工作区目录».metadata».plugins»org.eclipse.wst.server.core文件夹。
2-删除tmp文件夹。
3-重新启动Eclipse IDE
答案 13 :(得分:2)
我有同样的问题,这里的答案没有帮助我的情况。 经过几个小时的搜索,我找到了解决方案,我希望它能帮助别人。
对于任何获得“localhost上的服务器Tomcat v7.0服务器无法启动”的人来说,这是一个解决方案。在eclipse中配置tomcat服务器并尝试在其上运行项目后出错。
在eclipse中配置tomcat服务器后,需要从tomcat复制“WEB-INF”目录。 C:\ ...%TOMCAT_HOME%\ webapps \ ROOT和他们你会发现“WEB-INF”只是将它复制并粘贴到eclipse项目的WebContent文件夹中(覆盖web.xml文件)。
希望这有帮助。
答案 14 :(得分:2)
在我的情况下,错误是它无法找到servlet-api.jar。不知道为什么突然间它开始给出错误。因为之前它运行没有任何问题。在构建路径选项中给出servlet-api.jar后,服务器已成功启动。
答案 15 :(得分:1)
检查您的Web描述符(web.xml)或您的servlet(您在哪里注释,检查类似于&#39; @WebServlet(&#34; / servlet_name&#34;)&#39;)的任何重复项。如果有的话,将它们删除。
答案 16 :(得分:1)
本周末我遇到了类似的问题。尝试了上面提到的所有技巧,但没有一个对我有用。 (在Eclipse LUNA中工作)
然后我分析了在创建特定servlet之前,我成功运行了Apache Tomcat v7.0。这是“RefreshServlet”,如下所示:
这样练习servlet就能理解“AutoRefresh”的功能。 当我从我的应用程序中删除此servlet时,它工作正常,但是当我尝试添加并运行此servlet时,它会出现相同的错误“Apache Tomcat v7.0无法启动”
不知道为什么,但只有删除这个servlet才能运行我的其余应用程序。
所以,我的底线建议是,如果没有任何其他技巧可行,那么在获取此错误之前尝试删除任何最新的servlet或您刚刚创建的任何类,并且对于其他部分它也可以正常工作申请。
任何进一步的解释将不胜感激。感谢
答案 17 :(得分:1)
在我的eclipse工作区中,通过执行以下步骤解决了这个问题。 窗口 - &gt;偏好 - &gt;网络连接 - &gt;将“Active Provider”更改为“Direct”,而不是“Native”。你可以尝试一下。
答案 18 :(得分:1)
在我的情况下,我确实将我的tomcat文件夹(包含所有文件的文件夹)部署到另一个地方。
然后当我开始使用eclipse并尝试使用jsp&servues和servlet运行我的项目时,我遇到了同样的错误。
我在这里尝试了所有的答案,但它仍然没有改变任何东西。我的解决方案是将所有tomcat JAR文件放入项目库中,如下所示:
现在您应该在项目的Libraries文件夹中找到它们,然后它应该可以工作。
答案 19 :(得分:1)
尝试删除服务器控制台中的现有tomcat服务器,如果您没有控制台,则可以转到“显示视图 - &gt;服务器”,然后通过右键单击删除服务器。添加新服务器肯定会对您有所帮助。
答案 20 :(得分:0)
就我而言,从web.xml中删除servlet标签并在tomcat lib文件夹中添加缺少的库即可解决此问题。
答案 21 :(得分:0)
如果所有给出的答案都不适合您,那么只需更改当前工作区。
文件 - &GT;切换工作空间
这将解决你的问题。
答案 22 :(得分:0)
我通过右键单击“服务器”选项卡中的tomcat服务器并单击“清理Tomcat工作目录”来解决此问题
答案 23 :(得分:0)
创建新项目并将所有文件导入到新项目。它对我有用。...
答案 24 :(得分:0)
您可以右键单击apache-tomcat,选择属性,然后单击Restore Default。
答案 25 :(得分:0)
问题可能出在servlet中,因此请查看您是否在servlet的URL模式中使用注释。
尝试将项目构面(动态Web项目)版本更改为2.5,并在web.xml中定义所有servlet条目,这应该可以解决问题。
您可以通过在项目属性中更改Eclipse来更改项目构面版本->在搜索框中搜索“构面”,将Dynamic Web项目构面版本更改为2.5
答案 26 :(得分:0)
答案 27 :(得分:0)
我通过简单地关闭eclipse中的所有其他项目解决了我的问题。
答案 28 :(得分:0)
尝试从maven本地存储库(.m2)中删除所有项目的依赖项。
路径: C:\ Users \ user_name \ .m2 \ repository
关闭eclipse并再次打开它会自动下载所有依赖项。
答案 29 :(得分:0)
在我的情况下,问题是由传递的参数中的语法错误引起的。钥匙和钥匙之间有一个空格。使用'-D'时的值
即。
-DMyArg= MyValue
而不是
-DMyArg=MyValue
答案 30 :(得分:0)
首先在Web.xml中检查有多个&lt; servlet映射&gt;不同名称的标签 如果是,请删除不需要的内容并运行..这应该可以正常工作
或强>
要解决此问题,您必须删除目录中的.snap文件。
转到你的Eclipse工作区 UsingPath - &gt; workspace.metadata.plugins \ org.eclipse.core.resources \ snapfile 强>
删除快照文件。
删除此文件后, 删除Tomcat服务器 然后还删除被选为Apache tomcat的服务器运行时。 然后再次添加服务器并转到项目 - &gt;属性 - &gt;项目构面 - &gt;右侧您将找到详细信息和运行时选项卡。 单击运行时并选中已存在的Apache框(如果不存在则添加)
更改端口号并运行它。
答案 31 :(得分:0)
尝试上述所有步骤后,问题仍未解决。
最后通过以下步骤解决了问题。
1-检查工作空间目录中的.log文件。 Java版本问题
&#34;引起:java.io.IOException:无法运行程序&#34; C:\ jdk1.7.0_45 \ bin \ java&#34;:CreateProcess error = 193,%1不是有效的Win32应用 在java.lang.ProcessBuilder.start(未知来源) 在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不是有效的Win32应用程序 at java.lang.ProcessImpl.create(Native Method) 在java.lang.ProcessImpl。(未知来源) 在java.lang.ProcessImpl.start(未知来源)&#34;
我安装了正确的操作系统兼容JDK,问题已解决。 PS:我已经通过eclipse明确设置了JDK路径(Window-&gt; preference-&gt;安装了JRE)但是在设置了正确的JDK路径后,它对我来说很好。
答案 32 :(得分:0)
在eclipse服务器选项卡中双击apache服务器。现在将tomcat管理端口更改为8010, http端口更改为8082,Ajp端口更改为8011。
答案 33 :(得分:0)
在我的情况下,问题是另一个Tomcat实例正在运行。我从服务中停止了它,问题得到了解决