2

RMI JMX 接続用のこの Java コードの問題点は何ですか? 私は明らかに localhost に接続しようとしていませんが、エラーは私が接続していることを意味します。リモート サーバーで、ポート 1099 で JMX オプションを有効にしました (認証なし)。

これが私のグルーヴィーなスクリプトです:

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
4

2 に答える 2

1

これは有名な java.rmi.server.hostname の問題です。通常、一部の Linux ディストリビューションでの /etc/hosts の設定ミスが原因です。127.0.0.1 は localhost にマップされ、実際のホスト名は実際の IP アドレスにマップされるはずです。別の解決策については、RMI FAQ の項目 A.1 を参照してください。

編集:質問の IP アドレスを編集したので、検索している JMX サービスがその IP アドレスで実行されていない可能性が高くなります。

于 2012-11-07T22:29:30.840 に答える
0

127.0.0.1どういうわけかあなたのコードはリモートではなく接続しようとしています

Connection refused to host: 127.0.0.1; nested exception is:

実行しているコードは、問題のコードとは異なると思われます。問題のコードが実行されていることを確認してください。

于 2012-11-07T22:08:19.353 に答える