2011-02-01 140 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]