java - 无法连接到远程 JVM

标签 java embedded-jetty

我正在开发一个 Java 10 应用程序,该应用程序使用嵌入式 Jetty 服务器提供来自本地网络的控制,并且我尝试连接到 JVM 但失败。它在 Ubuntu 18.04 LTS 桌面上运行。

我的启动脚本包含以下几行:

java -Xdebug -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Djava.library_path=${LIB_PATH} -classpath ${CP} -jar ${APP_DIR}/app.jar 

我的系统上有 ufw,并且我已验证该端口已打开。我的 ufw status 输出包括:

8000 ALLOW Anywhere
8000 (v6) ALLOW Anywhere

在 IntelliJ 中,我的调试配置是

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

当我尝试连接时,收到连接被拒绝的错误消息。

在配置的地址框中使用机器的 IP。

查看 netstat -l 的输出,我看到以下内容:

tcp 0 0 localhost:8000 0.0.0.0:* LISTEN

这是否意味着调试器仅监听本地主机上的连接?我需要做些什么才能让它在网络上监听吗?

最佳答案

所以我很快就找到了答案。我需要修改服务器使用的行,使其显示为:

java -Xdebug -agentlib:jdwp=transport=dt_socket,address=*:8000,server=y,suspend=n -Djava.library_path=${LIB_PATH} -classpath ${CP} -jar ${APP_DIR}/app.jar

这就是监听所有接口(interface)。

关于java - 无法连接到远程 JVM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52554492/

相关文章:

java - 使用Spring连接动态变化的数据库

java - @Before 注释在 espresso 测试中被 kotlin 忽略?

java - 在WebsocketAdapter中获取ServletMapping [Jetty]

websocket - 在 Embedded Jetty 9 上的带注释的 @WebSocket 类中访问 HttpSession

java - 即使收到响应后,Lambda 函数也会返回超时

java - 在线程上调用 interrupt() 是否会创建与被中断线程的 happens-before 关系

java - Swagger 的 Spring API

java - 在Jetty服务器中如何获取需要客户端认证时使用的客户端证书?

java - 如何使用嵌入式 jetty 在给定地址提供特定类路径资源?

java - Jetty 客户端无法通过 HTTP/2 连接到 Jetty 服务器