4

在某一时刻,远程调试曾经有效。但是对于我的一生,我似乎无法弄清楚是什么破坏了它。

我有一个 flex/Java 应用程序。有一个启动 tomcat 服务器的包装器。我修改了 wrapper.conf 文件以包含

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

在我的 flex 调试配置中,在左侧,我有远程 Java 应用程序。在右边,我有标准(Socket Attach)作为连接类型,127.0.0.1(我也尝试过 localhost)作为主机,8000 作为端口。

以下是堆栈跟踪。

!ENTRY org.eclipse.jdt.launching 4 113 2013-09-03 11:30:49.109 !MESSAGE 无法连接到远程 VM。拒绝连接。!STACK 0 java.net.ConnectException:连接被拒绝:在 java.net.PlainSocketImpl.doConnect(Unknown Source) 在 java.net.PlainSocketImpl.connectToAddress(Unknown Source) 在 java.net.PlainSocketImpl.socketConnect(Native Method) 处连接java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java. net.Socket.(Unknown Source) at java.net.Socket.(Unknown Source) at org.eclipse.jdi.internal.connect.SocketTransportService$2.run(SocketTransportService.java:136) at java.lang.Thread.run(来源不明)

这是调试配置的屏幕截图。 调试配置的屏幕截图

4

5 回答 5

6

经过一番挣扎,我终于弄明白了。我不得不做出两个改变。

  1. 我将 tomcat.enable.debug=true 添加到我的 catalina.properties 文件中。
  2. 在我的 wrapper.conf 中,我有以下几行。

    wrapper.java.additional.9="-Xmx2048m" wrapper.java.additional.10="-XX:MaxPermSize=1024m"

我的 MaxPermSize 设置为比 Xmx 更小。我不得不将 1024 更改为 2048。

然后我重新启动了我的tomcat,它终于工作了!

于 2014-11-14T15:37:05.870 回答
4

每个调试参数必须单独放在一行中,在 -vm 参数之后。这应该可以解决问题:

-vmargs
-Xdebug 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
于 2013-10-07T13:48:57.997 回答
2

对于这个错误“连接被拒绝”,Eclipse 并不是很冗长。必须在这里检查三个条目。
1. 完全限定的主机名或 IP
2. 正确的端口号。
3. 在 Tomcat 级别,见鬼:

某些版本的 Tomcat 具有“dt_shmem”条目而不是“dt_socket”。在 catalina.bat 中将其更改为 dt_socket。该行应如下所示:
set JPDA_TRANSPORT=dt_socket

于 2015-03-30T07:06:38.410 回答
0

我们必须正确地以远程模式启动Tomcat,否则仅仅设置相关变量并不能解决问题。我的解决方案如下,适用于我的情况: 连接被拒绝问题解决方案

于 2016-12-12T11:09:07.313 回答
0

如果您验证 Eclipse 配置设置并看到主机名/IP 和端口名都正确,请尝试重新启动 eclipse

于 2019-10-11T21:47:08.087 回答