groovy 这个RMI JMX连接的Java代码有什么问题?

ilmyapht  于 2022-11-01  发布在  Java
关注(0)|答案(3)|浏览(146)

这个RMI JMX连接的Java代码有什么问题?我显然没有尝试连接到localhost,但错误暗示我在连接。在远程服务器上,我在端口1099上启用了JMX选项(无身份验证)。
下面是我的groovy脚本:

import javax.management.remote.*;    
JMXServiceURL u = 
 new JMXServiceURL("service:jmx:rmi://10.222.244.185:9999/jndi/rmi://10.222.244.185:1099/jmxrmi");    
JMXConnector c = JMXConnectorFactory.connect(u);

下面是我得到的错误:

C:\Temp>groovy jmx.gv
Caught: java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Conn
ection refused to host: 10.222.244.185; nested exception is:
        java.net.ConnectException: Connection refused: connect]
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection r
efused to host: 10.222.244.185; nested exception is:
        java.net.ConnectException: Connection refused: connect]
        at jmx.run(jmx.gv:5)
Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 10.222.244.185; nested except
ion is:
        java.net.ConnectException: Connection refused: connect]
        at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:101)
        at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:185)
        ... 1 more
Caused by: java.rmi.ConnectException: Connection refused to host: 10.222.244.185; nested exception is:
        java.net.ConnectException: Connection refused: connect
        at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:97)
        ... 2 more
Caused by: java.net.ConnectException: Connection refused: connect
        ... 3 more
r3i60tvu

r3i60tvu1#

这就是著名的java.rmi.server.hostname问题。通常是由某些Linux发行版中的/etc/hosts配置错误引起的。127.0.0.1应该Map到localhost,而您的真实主机名应该Map到您的真实IP地址。请参阅RMI FAQ中的A.1项以获取另一个解决方案。

**EDIT:**现在您已经编辑了问题中的IP地址,您正在查找的JMX服务很可能只是没有在该IP地址上运行。

vtwuwzda

vtwuwzda2#

不知何故,您的代码尝试连接到127.0.0.1而不是remote

Connection refused to host: 127.0.0.1; nested exception is:

我怀疑您正在执行的代码与您有问题的代码不同。请确保您有问题的代码正在执行。

deikduxw

deikduxw3#

这更多的是一个配置问题,你必须明确地提到你将如何访问存根。尝试通过JVM参数设置jmxremote选项。以下选项可能会解决你的问题。我在我自己的项目中尝试了同样的方法。

-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.port=8091
-Dcom.sun.management.jmxremote.rmi.port=8091
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

相关问题