使用Eclipse远程调试Tomcat

vic*_*tor 89 eclipse tomcat

我似乎无法通过Eclipse调试tomcat应用程序.我已经定了

CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

然后我跑bin/catalina.sh,我在那里看到输出说这是监听dt_socketport 8000.但每当我尝试连接到8000Eclipse中的端口时(通过在远程java应用程序菜单中添加一个条目),它就会抱怨拒绝连接.有任何想法吗?

Rag*_*ram 124

你能检查一下这是否有效?

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

catalina.sh jpda start
Run Code Online (Sandbox Code Playgroud)

  • 这适用于Windows操作系统:`set JPDA_OPTS = -agentlib:jdwp = transport = dt_socket,address = 8000,server = y,suspend = n``catalina.bat jpda start` (16认同)
  • 实际上`catalina.sh jpda start`就足够了.catalina.sh有一些`JPDA_*`参数,可用于更改端口,请参阅文件以获取文档. (9认同)
  • 实际上,你的确修好了.Eclipse成功连接时实际上并没有说什么,第二次重新连接会强制错误.所以它有效,但我没注意到. (4认同)
  • @Trismegistos。`suspend` 指定 jvm 应该等待调试器还是继续。请参阅 [此文档](http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html)。 (2认同)

Rav*_*MCA 53

我花了一些时间来获取正确的信息.

所以这里是一步一步的详细信息.

环境:Windows 7

TomCat版本:7.0

IDE:Eclipse

要在tomcat中启用远程调试而添加的配置是

-Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
Run Code Online (Sandbox Code Playgroud)

我建议不要在非Windows环境中进行上述配置.要添加上述配置,请双击tomcat服务器,该服务器将在服务器视图中可用.找到下面的屏幕截图. 在此输入图像描述

现在将上面的运行时环境配置添加到tomcat.对于此检查下面的截图.

在此输入图像描述

现在进入编辑启动配置属性中的Arugments选项卡,如下面的屏幕截图所示.

在此输入图像描述

GoTo VM参数部分添加这些行.

-Xdebug

-agentlib:JDWP =运输= dt_socket,地址= 8000,服务器= Y,暂停=正

在此输入图像描述

现在得到eclipse工具栏上的调试按钮.

在此输入图像描述

在Debug配置中找到"Remote Java Application"并双击它.在此输入图像描述

在"名称"字段中,输入您喜欢的任何名称.

从项目字段使用浏览按钮选择要执行远程调试的项目.

主机名只是主机地址.我在这里工作,所以它是"localhost".

最后一个Port列的值应该是8000.除Name和Project文本字段外,其他两列Host和port将由eclipse本身填充,如果没有让你有与上面提到的相同的值.检查屏幕截图获取信息.在此输入图像描述

现在右键单击服务器控制台中的TomcatServer,从上下文菜单中选择Add and Remove.在此对话框中,您可以将项目添加到服务器.

现在运行Tomcat服务器.

在此输入图像描述

现在从Debug Tool运行TomCatDebugConfiguration.

最后打开内部或外部浏览器并运行您的项目.如果执行控制到达断点,则eclipse将提示调试透视图.


kar*_*arl 46

在找到catalina.bat.sh找到的tomcat bin目录(又名{CATALINA_BASE}/bin)中,编辑(如果不存在则创建):

setenv.bat/.sh
Run Code Online (Sandbox Code Playgroud)

添加以下行:

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Run Code Online (Sandbox Code Playgroud)

这就是你需要做的,你不需要编辑catalina.bat(或.sh)文件.

请参阅catalina.bat或中的评论catalina.sh.

您可能必须调整特定环境/情况的语法.例如,如果已经定义了CATALINA_OPTS,则可能会执行以下操作(在Windows环境中):

set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,server=y,suspend=n
Run Code Online (Sandbox Code Playgroud)

要从Eclipse调试:

run-> Debug configurations ...-> Remote Java Application-> New

并指定名称,要调试的项目以及上面指定的tomcat主机和调试端口.


小智 30

catalina.bat文件中请修改以下内容.

  • 步骤1: CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

  • 第2步: JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

  • 第3步:从命令提示符运行Tomcat,如下所示: catalina.sh jpda start

  • 第4步:然后在eclipse中创建一个调试配置

    1. 提供配置的任何名称.
    2. project name.
    3. 将连接类型指定为 Standard(Socket Attach)
    4. 主持人 localhost
    5. port as 8000(或任何端口号,但在其他地方也应该相同).


DAB*_*DAB 7

上述许多答案都是正确的,但请记住,默认情况下调试器将侦听localhost,这意味着只有在同一台机器上运行调试客户端(例如,IDE)时才能进行调试。

例如,如果您正在调试远程服务器,则需要在该服务器上指定正确的 IP 地址以进行侦听

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address= 10.1.1.33 :8000,server=y,suspend=n"

catalina.sh jpda 开始

注意地址现在是10.1.1.33 :8000

当然,您也可以通过运行来检查实际使用的是哪个 IP

netstat -an

此命令在 Windows 和 Linux 上都有效 - 您只需要使用find(Windows) 或grep(Linux)过滤掉端口。

  • 不,我的意思是“IP 地址”。如果您进行远程调试(从另一台机器),您需要能够指定不同于 localhost 或 127.0.0.1 的 IP 地址。当然,您始终还需要端口号。 (2认同)

ata*_*man 5

只需运行./catalina.sh jpda start(分叉)或./catalina.sh jpda run(不分叉,帮助中未提及)。这里提到的所有选项都默认为合理的值。


May*_*yen 5

让我分享一下使用eclipse(Windows)在tomcat7中启用远程调试模式的简单方法.

步骤1:打开bin/startup.bat文件
步骤2:添加以下行以使用JDPA选项进行调试(它应该是文件的起始行)

    set JPDA_ADDRESS=8000  
    set JPDA_TRANSPORT=dt_socket  
Run Code Online (Sandbox Code Playgroud)

第3步:在同一个文件中..转到文件末尾修改此行 -

    call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%  
    instead of line  
    call "%EXECUTABLE%" start %CMD_LINE_ARGS%  
Run Code Online (Sandbox Code Playgroud)

第4步:然后运行bin> startup.bat(现在你的tomcat服务器以远程模式运行,端口为8000).

步骤5:之后,让我们通过eclipse IDE与远程客户端连接您的源项目.

步骤6:在Eclipse IDE中转到"调试配置"

step7:点击"远程java应用程序",然后点击"新建"

第八步.在"连接"选项卡中设置参数值

   project= your source project  
   connection Type: standard (socket attached)   
   host: localhost  
   port:8000  
Run Code Online (Sandbox Code Playgroud)

第9步:单击"应用并调试".

所以最后你的eclipse远程客户端与正在运行的tomcat服务器连接(调试模式).

希望这种方法可能对您有所帮助.

问候..