2011-02-01 143 views
3

我无法通过jconsole连接到具有IPv6地址的JMX服务URL。我试图jconsole连接到ipv6 JMX服务URL

service:jmx:rmi:///jndi/rmi://[fd02:c9e3:a6c0:4306:0:0:0:27]:5500/jmx 

,我得到

连接没有成功..

至于一些背景,

  • 我正在从我的JConsole Windows 7中,并连接到Linux上的jmx服务器。
  • jmx服务器是一个dual stacked红帽linux的盒子,我可以通过jconsole使用IPv4地址进行连接。
  • 不确定这是否相关,我尝试连接的主机有2个网络接口,其中一个仅用于管理目的。
+0

只是为了检查,你有没有在客户端认证设置或禁用服务器上? – Pace 2011-02-01 18:02:12

+0

你的应用程序是否真的监听IPv6套接字的jmx连接? – 2011-02-02 11:17:17

回答

1

好的,我添加了下面的条件来将服务器主机地址封装在方括号中。

if (aHost instanceof Inet4Address) { 
     this.hostAddress = aHost.getHostAddress(); 
    } 
    else if (aHost instanceof Inet6Address) { 
     this.hostAddress = "[" + aHost.getHostAddress() + "]"; 
    } 
    else { 
     throw someException(); 
    } 

.............some other stuff................. 

    registry = LocateRegistry.getRegistry(this.hostAddress, ...); 

事实上,主机地址被指定为在属性文件中的名称值对。因此,我可以像下面这样做,但由于其他原因无法工作。

的.properties文件

主机名= [FD02:c9e3:a6c0:4306:0:0:0:27]