由于某种原因,tomcat 服务器突然无法运行/启动/停止。
下面是我运行启动命令时得到的结果,
C:\Program Files\jasperserver-3.5.0\apache-tomcat\bin>startup
Using CATALINA_BASE: C:\Program Files\jasperserver-3.5.0\apache-tomcat
Using CATALINA_HOME: C:\Program Files\jasperserver-3.5.0\apache-tomcat
Using CATALINA_TMPDIR: C:\Program Files\jasperserver-3.5.0\apache-tomcat\temp
Using JRE_HOME: C:\PROGRA~1\JASPER~1.0\java\jre
tomcat 窗口弹出一秒钟然后消失。
(我在 c:\program files 下安装了另一个 java 实例)
救命!!!
更新:
来自 catalina 文件的日志
Mar 22, 2011 3:41:50 AM org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Mar 22, 2011 3:41:50 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1017 ms
Mar 22, 2011 3:41:51 AM org.apache.catalina.core.StandardService start
INFO: Starting service Catalina
Mar 22, 2011 3:41:51 AM org.apache.catalina.core.StandardEngine start
INFO: Starting Servlet Engine: Apache Tomcat/5.5.20
Mar 22, 2011 3:41:51 AM org.apache.catalina.core.StandardHost start
INFO: XML validation disabled
Mar 22, 2011 3:42:06 AM org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Mar 22, 2011 3:42:06 AM org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
Mar 22, 2011 3:42:06 AM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/43 config=null
Mar 22, 2011 3:42:06 AM org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
Mar 22, 2011 3:42:06 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 15374 ms
使用
catalina.bat run
而不是 startup.bat
。然后窗口就不会消失,你就可以看到发生了什么
就我而言,这是
%CATALINA_HOME%
路径中最后一个斜杠的问题:最后一个斜杠不应该在那里!
C:\tomcat\8.0.30
- 正确
C:\tomcat\8.0.30\
- 错误
参见 http://blackandwhitecomputer.blogspot.de/2015/09/tomcat-debug-cannot-startup.html
老实说,我没想到现代应用程序可能依赖于环境变量路径中的最后一个斜杠!
我遇到了类似的问题。我打开 cmd 提示符并 cd 到 tomcat in\startup.bat。问题是我的 JRE_HOME 未在环境变量中定义。我添加了并且成功了。
我也遇到了同样的问题,我是这样解决的:
首先,按照@ykaganovich的建议,我尝试使用catalina.bat start命令启动服务器;它没有解决问题,但至少显示了指定错误的日志,这确实很有帮助。
就我而言,日志说问题是因为java版本。我有 JAVA_HOME 变量指向 JDK7,但我的 tomcat 版本需要它指向 JDK8。
我将 JAVA_HOME 变量更改为指向 JDK8(而不是 JDK7),然后,当我再次执行 catalina.bat start 命令时,它运行良好并且服务器启动。我希望我的建议对某人有帮助。
嗯,这是一个非常奇怪的问题,因为在日志中你已经启动了该服务器,所以试试这个:
在 Eclipse 中添加 tomcat 并从那里启动它。将 tomcat 配置为“使用 Tomcat 安装”。会起作用的
如果 Tomcat 之前工作正常,但 Tomcat 意外未启动,这是因为其他进程已开始使用您正在使用 Tomcat 的端口。就我而言,我关闭了 Tomcat,并尝试直接从 Eclipse 运行我的 servlet。这样Eclipse就控制了该端口。在我关闭 Eclipse 并尝试重新启动 Tomcat(使用startup.bat)后,一切正常。
ykaganovich 的 answer 帮助我找到了我的问题。
上述解决方案都不适合我。
我通过删除当前的 tomcat 并用新的 tomcat 替换它并再次设置我的工作区找到了出路。
我希望这可以帮助别人
打开 Tomcat 用户文件 (tomcat-users.xml) 并检查是否已关闭所有语音标记。这就是为我解决的问题。
现在仔细检查角色名称:
<tomcat-users>
<role rolename="admin" />
<role rolename="manager" />
<user username="admin" password="secret" roles="admin,manager" />
</tomcat-users>
最后,执行bin中的startup.bat文件
最新版本的 Tomcat 可与 8 之后的 Java(可能还有 JDE)版本配合使用。我定义了不同的环境变量 JRE_HOME 和 JAVA_HOME。
JAVA_HOME = C:\Program Files\Java\jdk-20 JRE_HOME = C:\Program Files\Java\jre-1.8 这种形式下,tomcat在bash中启动了,但是并没有出现在服务列表中。
通过更改JRE_HOME的路径一切都解决了。 JAVA_HOME 的路径可以替换 JRE 的路径。这是因为tomcat启动时会搜索java_home OR jre_home。
我还建议将JAVA_HOME添加到系统环境变量中
尝试打开 Tomcat7w.exe 或按照以下步骤操作。
(我已将 Tomcat 安装在文件夹 C:\Program Files\Apache Software Foundation\Tomcat 7.0 下)