解决 tomcat 启动一闪而过

在使用 tomcat 作为 java 开发的 web 容器时,如果 tomcat 的配置存在问题,启动 tomcat 时,黑色 DOS 弹框闪一下就没有了。对于我们定位问题非常不友好,怎么解决这个痛点呢?

在使用 tomcat 作为 java 开发的 web 容器时,如果 tomcat 的配置存在问题,启动 tomcat 时,黑色 DOS 弹框闪一下就没有了。对于我们定位问题非常不友好,怎么解决这个痛点呢?

解决办法:

通过修改 catalina.bat 文件,不使用 start 命令去执行 java.exe 就可以了。修改方式如下:

(1)打开 catalina.bat 文件,找到如下脚本片段:

:doStart
shift
if "%TITLE%" == "" set TITLE=Tomcat
set _EXECJAVA=start "%TITLE%" %_RUNJAVA%
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set "SECURITY_POLICY_FILE=%CATALINA_BASE%confcatalina.policy"
goto execCmd

(2)将上面脚本片段中的 set _EXECJAVA=start "%TITLE%" %_RUNJAVA% 修改为 set _EXECJAVA=%_RUNJAVA% 即可。修改后完整脚本片段如下:

:doStart
shift
if "%TITLE%" == "" set TITLE=Tomcat
set _EXECJAVA=%_RUNJAVA%
if not ""%1"" == ""-security"" goto execCmd
shift
echo Using Security Manager
set "SECURITY_POLICY_FILE=%CATALINA_BASE%confcatalina.policy"
goto execCmd

此时,再去执行 startup.bat 脚本启动 tomcat,即使 tomcat 配置存在问题也不会一闪而过。

注意:修改后需要使用 DOS 命令行去运行 startup.bat 脚本,否则起不到作用。

示例

我们故意配置两次 jdwp,如下:

rem ----- Execute The Requested Command ---------------------------------------
set JAVA_OPTS=%JAVA_OPTS% -server -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=58080
set JAVA_OPTS=%JAVA_OPTS% -server -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=58080

运行效果如下图:

D:apache-tomcat-7.0.109in>startup.bat
Using CATALINA_BASE:   "D:apache-tomcat-7.0.109"
Using CATALINA_HOME:   "D:apache-tomcat-7.0.109"
Using CATALINA_TMPDIR: "D:apache-tomcat-7.0.109	emp"
Using JRE_HOME:        "D:Javajdk1.8.0_171"
Using CLASSPATH:       "D:apache-tomcat-7.0.109inootstrap.jar;D:apache-tomcat-7.0.109in	omcat-juli.jar"
Using CATALINA_OPTS:   ""
ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
Error occurred during initialization of VM
agent library failed to init: jdwp
D:apache-tomcat-7.0.109in>

上面结果中已经明确给出了错误信息,重复 jdwp 选项。

到这里就结束了,本文只教你怎样去获取错误信息,并不教你如何去解决遇到的实际问题,每个启动 tomcat 一闪而过可能都有不同的错误,这需要读者自行研究……

青年最主要的任务是学习。 —— 朱德
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号