Eclipse不在断点处停止:远程Java调试(在本地完成)

时间:2017-05-25 20:01:34

标签: java eclipse debugging tomcat

我在tomcat 9中定义了setenv.bat,其内容如下:

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

在Eclipse中,我通过右键单击我的项目并将主机设置为localhost,将端口设置为8000来设置新的远程Java应用程序。 没有检查allow termination of remote VM

以下是我要遵循的更多步骤:

我从Eclipse的Servers tab停止了tomcat服务器。

我使用catalina jpda start从命令行启动了tomcat。服务器在单独的命令窗口中成功启动。

我在eclipse的代码中设置了一个断点,并在POSTMAN中运行我的webservice,如下所示:

http://localhost:8080/myProject/search?id=1234

Eclipse中没有任何事情发生。基本上日食不是在调试模式下开始的。我需要做的任何其他设置 让它工作?我记得几年前我做过的调试窗口打开,现在无法回想起来,弄清楚我在做什么错误。

2 个答案:

答案 0 :(得分:0)

如果您按如下方式编辑setenv.bat,

rem CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
rem JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"
set JPDA_SUSPEND=y

然后你可以附上调试器吗?

答案 1 :(得分:0)

这里有一些缺失的链接。

在从命令提示符开始之前,您是否确保部署了您的Web应用程序? 通过Eclipse Servers插件部署应用程序时,您可以选择与部署相关的三个选项。现在,对于您从eclipse停止的服务器,您选择了哪一个选项?See the Server Locations side on the left side

只有选择在tomcat根目录中进行部署时,才能尝试从命令提示符进行调试并附加远程调试器。其他两种模式不会通过在那里部署您的Web应用程序来更改您的tomcat安装目录,因此您的URL实际上可能不会调用任何类(并将返回404)。因此,假设它们已部署,您可以在类中设置调试点,然后重新检查。

编辑:由于正在更改Catalina shell文件,因此在编写此答案时的推断是您使用的是Tomcat安装目录。

[编辑]在下面的评论之后。以下两个选项将帮助您通过:

  1. 将部署更改为实际的Tomcat安装,然后如上所述,附加调试器

  2. 使用Eclipse WTP Debug on Server选项。