java - 使用 JVisualVM 监控 Docker 上的 Glassfish 4

标签 java glassfish docker jvisualvm

我无法将 JVisualVM 连接到在 Docker 上运行的 Glassfish。我正在使用glassfish nightly image我公开了端口 8686。在启动时,Glassfish 正在记录以下内容:

JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://55bbdd404578:8686/jndi/rmi://55bbdd404578:8686/jmxrmi

我的docker主机的IP是192.168.99.100,我可以通过端口8686上的telnet连接。

我使用的服务 URL 是 service:jmx:rmi://192.168.99.100:8686/jndi/rmi://192.168.99.100:8686/jmxrmi 我正在传递安全凭证但无法连接。我错过了什么吗?

最佳答案

遇到同样的问题。

将以下内容添加到服务器配置 –> jvm-settings –> JVM 选项

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port='your JMX port'
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Djava.rmi.server.hostname='IP of you docker host'

然后按照之前的方式完成其余的操作。

当你查看 server.log 时,你会注意到 JMX 服务公开为:

JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://e15295161718:40086/jndi/rmi://e15295161718:40086/jmxrmi

并且可能这些配置条目将 e15295161718 更改为 IP 并且 JVisualVM 可以连接。从主机的角度来看,e15295161718 对于 JVisualVM 来说是垃圾。

关于java - 使用 JVisualVM 监控 Docker 上的 Glassfish 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32318344/

相关文章:

java - 是什么让事务成为 Spring/Java 中的事务(特定场景)?

java - 使用 @Resource 时处理 EJB 上的异常

php - Apache docker 容器 - 无效命令 'RewriteEngine'

tomcat - 主机无法访问 Docker 容器

Java Android : onTouchListener not working

java - 动态向 Fragment 添加按钮

java - 运行时期间使用 Metro/JAX-WS/WSIT 的 WSDL 请求

java - 哪些面向 GlassFish 2.1 和 NetBeans 6.7 的技术?

docker - 无法使用 ADD 或 COPY 替换 docker 镜像中的文件

java使用httpclient 4.1抓取https获取bad_record_mac