使用特定的Java参数启动Tomcat

5

我正在使用TOMCAT_HOME\bin目录下的startup.bat启动Tomcat。
我需要启用所有Java的调试跟踪信息。
在我的Web应用程序(注意:实际上是一个Axis2 Web服务)中,我执行了以下操作:
System.setProperty("javax.net.debug", "all");
但它没有起作用。
Tomcat控制台没有输出任何内容。
我尝试将此属性作为Tomcat启动时的参数放置,因此我编辑了catalina.bat如下:
之前:

if not "%LOGGING_MANAGER%" == "" goto noJuliManager
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%

之后:

if not "%LOGGING_MANAGER%" == "" goto noJuliManager
set LOGGING_MANAGER=-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
:noJuliManager
set JAVA_OPTS=%JAVA_OPTS% %LOGGING_MANAGER%
set JAVA_OPTS=-Djavax.net.debug=all %JAVA_OPTS%

我不确定在catalina.bat中是否是正确的位置,但我认为这很合理。
同样没有成功。
那么我该如何使用-Djava选项启动tomcat呢?
具体来说,我该如何启用

System.setProperty("javax.net.debug","all"); 以便我可以在我的Web应用程序中进行调试?

谢谢。


1
你正在正确的方向上。使用-D选项对我来说总是有效的。:( - Pablo Santa Cruz
@Pablo: 你有没有想法我做错了什么,为什么没有将调试信息输出到控制台? - Cratylus
@user384706:你是否安装了JMX?为确保你的-D参数被读取,尝试手动运行catalina。在Unix系统中,你可以通过ps aux | grep java命令查看调用时的-D参数。 - Pablo Santa Cruz
@Pablo:我正在使用Windows系统。我尝试了“catalina start”,但是没有成功。不知道在Windows中等价于“ps aux | grep java”的命令是什么。 - Cratylus
2个回答

5

设置Tomcat的额外参数的“官方”方法是通过在Unix中创建bin/catalina.sh或在Windows中创建bin\catalina.bat。在您的(Windows)情况下,文件应如下所示:

set CATALINA_OPTS=%CATALINA_OPTS% -Djavax.net.debug=all

尝试过了,但没有成功。但也许我在这里错了。我在Java代码中看到以下内容:if (debug!= null){debug.println(“---checking”+ msg +“...”);等等 这不应该去控制台吗?即使使用此选项,Tomcat控制台也不会显示任何额外的调试跟踪。 - Cratylus
尝试通过调用“catalina.bat run”来启动Tomcat,以便输出到您的stdout(并观察它),也许您的日志配置设置不正确? - mindas

0

一个hackish的解决方案是查找catalina.bat和startup.bat中所有设置JAVA_OPTS的地方,并在其中添加一些内容。

你应该会找到一个或多个set JAVA_OPTS=.......,然后在其中添加一些内容。 每当我需要添加额外选项但又没有时间查看@mindas的解决方案为什么不起作用时,这就是我所做的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接