Java 使用Tomcat在Eclipse中调试远程应用程序

Java 使用Tomcat在Eclipse中调试远程应用程序,java,eclipse,debugging,tomcat8,Java,Eclipse,Debugging,Tomcat8,我试图在Eclipse中调试一个运行在Tomcat服务器上的远程Java应用程序。根据调试的设置方式,我经常遇到两个错误之一。我没有使用任何代理或VPN,所有代码都在我自己的机器上运行 我不能展示很多代码,但我可以准确地描述我采取的步骤: 首先,我更改了位于Tomcat的bin目录中的startup.bat中的代码: 调用“%EXECUTABLE%”开始%CMD\u LINE\u ARGS%更改为调用“%EXECUTABLE%”jpda开始%CMD\u LINE\u ARGS% 就在这一行上面,

我试图在Eclipse中调试一个运行在Tomcat服务器上的远程Java应用程序。根据调试的设置方式,我经常遇到两个错误之一。我没有使用任何代理或VPN,所有代码都在我自己的机器上运行

我不能展示很多代码,但我可以准确地描述我采取的步骤:

首先,我更改了位于Tomcat的bin目录中的
startup.bat
中的代码:

调用“%EXECUTABLE%”开始%CMD\u LINE\u ARGS%
更改为
调用“%EXECUTABLE%”jpda开始%CMD\u LINE\u ARGS%

就在这一行上面,我添加了以下JVM参数。我不知道它们应该是什么参数,也不知道这是否是放置它们的正确位置,但我只是遵循了一个示例:

set JAVA_OPTIONS=-Xdebug-Xnoagent-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

在Eclipse上,以下是我对服务器的端口配置:

Tomcat Admin port: 8005
HTTP/1.1: 8080
SSL: 8443
AJP/1.3: 8009
确保服务器正常运行后,我打开run->debug configuration->remote Java application并设置这些参数,然后点击debug:

Host:localhost
Port:8000
这样做会导致“连接被拒绝”错误。当我将调试配置中的端口号更改为8080或8005时,启动会等待20秒,然后返回“连接超时”错误。当我将超时增加到3分钟时,启动会等待3分钟,然后返回“连接超时”错误。在JVM设置中更改“地址”似乎没有任何区别,不管它是设置为8005还是8080

你对我可以尝试调查的事情有什么建议吗? 谢谢 内森


我想你不必修改任何现成的东西。 如果您想在调试模式下启动tomcat,那么从bin文件夹运行 “/catalina.sh jpda start”如果在mac或linux中运行,或运行“catalina jpda start”


这将在调试模式下启动tomcat,然后您可以尝试将调试器连接到端口8000。

如何启动tomcat?隐式(从Eclipse)或显式(通过手动启动start.bat)?我从Eclipse启动它我正在Windows上运行在这种情况下,您可以执行catalina.bat而不是catalina.sh步骤保持不变执行catalina.bat会导致它在调试模式下运行,监听端口8000?或者你是说我必须在cmd中执行
catalina.bat jpda start
?然后在Eclipse中,我只需在该端口和主机名上调试,它将拾取断点等等?只需从bin文件夹中运行catalina.bat,并从Eclipse中连接远程调试器。这就像我从bin文件夹中运行catalina.bat,然后在Eclipse调试配置窗口中点击“调试”一样,好像什么也没发生。我看不到任何反馈表明它正在调试。当我第二次尝试点击“调试”时,我得到一个“连接被拒绝”错误