【问题标题】:When using a JMX server with ephemeral port, how to get the server port number?使用带有临时端口的 JMX 服务器时,如何获取服务器端口号?
【发布时间】:2019-12-08 00:25:25
【问题描述】:

使用这些选项启动 Java 应用程序时:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=0
-Dcom.sun.management.jmxremote.local.only=false

Java 使用临时端口,这对于避免冲突非常有用。

是否可以从应用程序中以编程方式获取实际端口(或连接 URL)?

【问题讨论】:

    标签: java rmi jmx mbeans


    【解决方案1】:
        String url = sun.management.ConnectorAddressLink.importRemoteFrom(0)
                .get("sun.management.JMXConnectorServer.0.remoteAddress");
        System.out.println(url);
    

    这将像这样打印 URL

    service:jmx:rmi:///jndi/rmi://hostname:57025/jmxrmi
    

    【讨论】:

      猜你喜欢
      • 2015-08-17
      • 2012-06-25
      • 2012-10-31
      • 1970-01-01
      • 2011-11-23
      • 2021-05-09
      • 2011-04-13
      • 2011-06-17
      相关资源
      最近更新 更多