我在远程 Glassfish 服务器上启用了 JMX 连接,然后我重新启动了它。在启动服务器通知期间:
Standard JMX Clients (like JConsole) can connect to JMXServiceURL:
[service:jmx:rmi:///jndi/rmi://myserver:8686/jmxrmi] for domain management purposes.
端口 8686 为连接打开。
但我无法使用 JConsole 连接到服务器。它说:连接失败。
我怎么解决这个问题?
提前致谢。
据我了解,JMX 使用 8686 作为 RMI 注册表的端口,但 JConsole 连接到那里只是为了找到用于 JMX 服务器的端口,该端口是动态分配的。您可能会遇到防火墙阻止访问此其他端口的问题。您可以通过使用远程桌面程序连接到服务器来验证这一点,然后在本地(在服务器上)运行 JConsole。如果它连接,那么我敢打赌这是你的问题。
希望这可以帮助...
解决方法是在 GlassFish 实例的 JVM Options 中添加 -Djava.rmi.server.hostname=。
在 Windows 7 上我遇到了类似的问题,解决方案是将 jmx-connector 上的地址更改为 domain.xml 中的 127.0.0.1