如何启用Tomcat调试

时间:2017-07-25 15:41:10

标签: tomcat

我在服务器上安装了Tomcat,我希望能够检查是否禁用/启用了debuggin。我到处搜索,找到了以下说明:

1. Open the user interface and navigate to Administration > System Management > Hosts > UI Server.
2. Select "Use local settings" and check the boxes for Enable Tomcat Logging and Enable Tomcat Debugging.
3. Save the changes and restart the services when prompted. 

问题是我是否需要安装额外的管理控制台来访问这些功能尚不清楚。我会感谢任何正确方向的帮助或指示。提前谢谢

3 个答案:

答案 0 :(得分:1)

我相信调试已安装,但默认情况下不活动。告诉你的方法是查看你的启动脚本bin / catalina.sh或bin / startup.sh。执行startup.sh时,默认情况下tomcat将以常规执行模式启动。你也可以先开始 ./catalina.sh start 在设置了一些传递给startup.sh脚本的变量之后调用startup.sh。当您使用jpda参数执行catalina.sh时, ./catalina.sh jpda start 它将构建在调试模式下启动tomcat的参数。如果您可以在启动tomcat后访问您的应用程序 ./catalina.sh jpda start 您的应用程序正在调试模式下运行。

运行时信息记录到logs / catalina.out,因此如果出现阻止catalina.sh启动tomcat的问题,您可能会在那里找到它。

以下是catalina.sh jpda选项的默认设置。如果你想更改这些,可以在catalina.sh,startup.sh,setenv.sh中修改它(我必须在安装tomcat 8之后创建其中一个)或者编写一个自定义启动脚本来设置调试传输和地址,然后使用适当的选项调用catalina或startup以在调试模式下启动(下面的“agentlib”行)。

if [ "$1" = "jpda" ] ; then
    if [ -z "$JPDA_TRANSPORT" ]; then
        JPDA_TRANSPORT="dt_socket"
    fi
    if [ -z "$JPDA_ADDRESS" ]; then
        JPDA_ADDRESS="localhost:8000"
    fi
    if [ -z "$JPDA_SUSPEND" ]; then
        JPDA_SUSPEND="n"
    fi
    if [ -z "$JPDA_OPTS" ]; then

JPDA_OPTS = “agentlib:JDWP =运输= $ JPDA_TRANSPORT,地址= $ JPDA_ADDRESS,服务器= Y,暂停= $ JPDA_SUSPEND”         科幻             CATALINA_OPTS =“$ JPDA_OPTS $ CATALINA_OPTS”         转移     网络

答案 1 :(得分:0)

您是否尝试使用浏览器导航到tomcat安装。自从我使用tomcat以来已经过了一段时间,但我很确定在运行你的tomcat的ip上有一个配置页面。

答案 2 :(得分:0)

要在tomcat中启用调试,您可以使用JPDA。 JPDA代表Java平台调试器架构,它是创建调试应用程序的工具。 要启用调试,您需要指定两件事。一种是在调试器和debugee之间移动位的传输机制,另一种是调试连接被接受的地址。现在,根据调试器和debugee的位置,传输机制可能不同。 导出传输和地址变量,如下所示。

导出JPDA_ADDRESS = 8000

导出JPDA_TRANSPORT = dt_socket

设置变量后,可以使用以下命令启动tomcat。

sudo catalina.sh jpda start。

我假设您已正确设置了TOMCAT_HOME环境变量,如果没有,则通过转到tomcat的bin目录并使用 catalina.sh jpda 启动命令启动它。

在调试模式下启动tomcat的另一种方法是使用JAVA_OPTS。设置环境变量后,您可以执行以下命令。

导出JAVA_OPTS =“ - Xdebug -Xrunjdwp:transport = dt_socket,server = y,suspend = y,address = 8080”

在上面的命令中,传输机制是dt_socket。这意味着用于在调试器和调试对象之间发送位的传输机制是套接字传输机制。另一种传输机制是 dt_shmem (共享内存的shmem)。如果要远程调试,请转到套接字机制。如果您不想调试远程计算机(调试器和debugee在同一系统中),那么您将使用共享内存。

suspend = y 告诉JVM以挂起模式启动并保持挂起状态,直到连接调试器为止。

值server = y用于打开套接字并侦听传入的调试器请求。

之后运行命令 sudo sh catalina.sh run