当前位置: 首页 > 面试题库 >

远程调试:在端口8787上未连接OpenJDK 11上的Wildfly 14

殳俊
2023-03-14
问题内容

我正在尝试将调试器连接到在Open JDK 11上运行的Wildlfy。

尽管Wildfly说:

Listening for transport dt_socket at address: 8787

我的IDE(IntelliJ IDEA CE 2018.1)声称没有任何连接:

Unable to open debugger port (localhost:8787): java.io.IOException "handshake failed - connection prematurally closed"

我通过standalone.sh --debug以下方式启动Wildfly JAVA_OPTS

-server
-Xms64m
-Xmx512m
-XX:MetaspaceSize=96M
-XX:MaxMetaspaceSize=256m
-Djava.net.preferIPv4Stack=true
-Djboss.modules.system.pkgs=org.jboss.byteman
-Djava.awt.headless=true
-agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n
--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED
--add-exports=jdk.unsupported/sun.reflect=ALL-UNNAMED
--add-modules=java.se

Java 9/10/11有什么变化吗?使用Oracle JDK 8时,使用完全相同的设置进行远程调试可以很好地工作。

我可以使用telnet确认该端口8787确实无法访问。

*阅读@ehsavoie的评论后进行 *更新netstat -ln在运行Wildfly的服务器上显示:

Proto Recv-Q Send-Q Local Address           Foreign Address         State   
tcp        0      0 127.0.0.1:8787          0.0.0.0:*               LISTEN

因此,显然在OpenJDK 11中,默认情况下,调试端口现已绑定到localhost。


问题答案:

原因是根据此答案,Java 9更改了默认行为:从Java
9开始,除非另有说明,否则JVM仅接受本地连接。

由于Java 9.0,JDWP默认情况下仅支持本地连接。 http://www.oracle.com/technetwork/java/javase/9​​-notes-3745703.html#JDK-8041435

对于远程调试,应使用*:in地址运行程序:

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

因此,解决方案相当简单:

使用Java 8足以启动Wildfly --debug,而使用Java 9则需要将其更改为--debug *:8787



 类似资料:
  • 然后我在IntelliJ中设置了一个带有附加模块的插入式服务器,以启用热交换。我在调试模式下运行这个服务器,它运行得很好。 现在,如果我不使用插入式服务器,但想像之前一样启动服务器,那么当我运行调试远程时,我会得到以下结果: 错误 运行“Debug Glassfish OSM”时出错:无法打开调试器端口(localhost:9009):java。网ConnectException“连接被拒绝:连接

  • 问题内容: 我可以在服务器上ping pong Redis: 但是在远程,我遇到了问题: 在配置中,我得到了标准端口: 因此,也许我应该在远程Ubuntu计算机上打开端口6379?我该怎么做? 问题答案: 您是否设置了绑定选项以允许Redis服务器上的远程访问? 之前(文件) 后 并运行以重新启动服务器。如果这不是问题,则可能要检查所有可能阻止访问的防火墙。 重要说明: 如果您不使用防火墙(ipt

  • 我想在伪分布式模式下设置一个hadoop-cluster来进行开发。由于端口9000上的连接被拒绝,尝试启动hadoop集群失败。 /etc/hosts: 但是在开始调用之后,日志文件中有以下几行: hadoop-pschmidt-datanode-zaphod.log 我还可以寻找什么来启动和运行我的hdfs。不要犹豫,要求进一步的日志和配置文件。 提前谢了。

  • 我正在尝试连接到学校的github,但端口443被阻止。 管理员告诉我使用端口9418,我相信这是git协议的默认端口。 但在git bash(windows)如果我尝试做git远程set-url源并做一个推送,它告诉我我不能推送到这个URL,并使用

  • 我在运行Ubuntu服务器14.04的服务器上安装了PostgreSQL 9.3。 在服务器上运行时,我得到(我猜是相关部分):