所以这个项目在周末之前工作得很好(有其他问题,但至少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
从Windows打开服务器选项卡?显示视图?服务器菜单
右键单击服务器并将其删除
转到新建一个新服务器?服务器选项卡上的服务
单击"配置运行时环境..."链接
选择Apache Tomcat v7.0服务器并将其删除.这将删除Tomcat服务器配置.这是许多人错误的地方 - 他们删除服务器但不删除运行时环境.
单击确定并立即退出上面的屏幕.
从下面的屏幕中,选择Apache Tomcat v7.0服务器并单击下一步按钮.
浏览到Tomcat安装目录
单击Next并选择要部署的项目:
添加项目后单击"完成"
现在启动您的服务器.这将修复服务器超时或旧服务器配置的任何问题.此解决方案还可用于修复"端口更新未发生"问题.
Ami*_*Ami 55
要解决此问题,您必须删除.snap目录中的文件:
<workspace-directory>\.metadata\.plugins\org.eclipse.core.resources
Run Code Online (Sandbox Code Playgroud)
删除此文件后,您可以毫无问题地启动Eclipse.
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)
现在服务器正常加载.奇怪.
小智 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
上面提到的答案都不适合我.我在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).然后我关闭了此选项,在提示时保存了更改并启动了我的服务器.它开始工作正常.
在我的例子中,问题出在web.xml文件中,我忘了在url-pattern之前加上"/"(例如/login.do).
如上所述,@ Ajak6通过将servlet API添加为项目的外部JAR库,解决了我的问题.
但是,我发现了一种更好的方法,将Tomcat添加到目标运行时,如下所示;
1)项目>属性
2)在侧面菜单上选择"Targeted runtimes"
3)选择Tomcat(点击申请)
4)点击确定
打开你的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>标签底部将其关闭.完成.
我在我的tomcat服务器上遇到了同样的问题,但是当我深入检查时,我发现我在我的web.xml文件中添加了一个新标签,服务器不接受它,所以检查你的文件是否有任何更新,然后重新启动你的tomcat和会变好 .
| 归档时间: |
|
| 查看次数: |
605058 次 |
| 最近记录: |