`
f543711700
  • 浏览: 329168 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

根据进程ID连接JMX,代码测试

阅读更多
import sun.misc.VM;
import sun.misc.VMSupport;

import java.io.IOException;
import java.net.ServerSocket;

/**
 * Created by DUDU on 2018/6/12.
 */
public class Server {

    public static void main(String[] args) throws InterruptedException {
        try {
//            ServerSocket ss = new ServerSocket(21000);
//            String addr = System.getProperty("com.sun.management.jmxremote.localConnectorAddress");
            String addr = (String) VMSupport.getAgentProperties().get("com.sun.management.jmxremote.localConnectorAddress");
            System.out.println("addr1:" + addr);
            if (addr == null) {
//                Thread.currentThread().getContextClassLoader().loadClass("");
//                Class.forName("sun.management.Agent");
                sun.management.Agent.premain("");
            }
            addr = (String) VMSupport.getAgentProperties().get("com.sun.management.jmxremote.localConnectorAddress");
            System.out.println(addr);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }

        Thread.sleep(50000000L);
    }

}

JVM在加载sun.management.Agent后,会监听一个地址,端口随机,我测试的时候是:
service:jmx:rmi://127.0.0.1/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc1AAtVbmljYXN0UmVmMgAACjEwLjEuNy4yMTcAAMptncwWe1hOy/PhQ2ADAAABY/0c42+AAQB4

注意这时候的IP和端口实际是在后面加密的串里面,前面那个127.0.0.1是骗人的

所以客户端连接程序为:


JMXServiceURL jmxUrl = new JMXServiceURL("service:jmx:rmi://127.0.0.1/stub/rO0ABXNyAC5qYXZheC5tYW5hZ2VtZW50LnJlbW90ZS5ybWkuUk1JU2VydmVySW1wbF9TdHViAAAAAAAAAAICAAB4cgAaamF2YS5ybWkuc2VydmVyLlJlbW90ZVN0dWLp/tzJi+FlGgIAAHhyABxqYXZhLnJtaS5zZXJ2ZXIuUmVtb3RlT2JqZWN002G0kQxhMx4DAAB4cHc1AAtVbmljYXN0UmVmMgAACjEwLjEuNy4yMTcAAMptncwWe1hOy/PhQ2ADAAABY/0c42+AAQB4");
        JMXConnector jmxc = JMXConnectorFactory.connect(jmxUrl);

分享到:
评论

相关推荐

    jmx测试包用于检查zabbix的监控项是否正常

    标签"测试"表明这个压缩包包含的`cmdline-jmxclient-0.10.3.jar`可能是一个命令行工具,用于测试Zabbix与目标Java应用之间的JMX连接和数据交换。`cmdline-jmxclient`可能是一个轻量级的JMX客户端,允许用户从命令行...

    JMX 连接工具 Eclipse 插件

    Eclipse 插件"JMX 连接工具"为开发者提供了一个便捷的途径,通过集成的开发环境来连接并管理JMX服务端,从而实现远程或本地的应用程序监控。 首先,JMX客户端连接信息是理解如何与JMX服务端建立通信的关键。JMX...

    jmx监控tomcat测试包

    catalina-jmx-remote.jar放到tomcat/lib目录下 如果是windows版本,编辑TOMCAT_HOME/bin/catalina.bat,在开头加入下面几行: set CATALINA_OPTS=%CATALINA_OPTS% -Djava.rmi.server.hostname=JMX_HOST set CATALINA...

    jmx 实现远程连接tomcat

    使用JDK自带的jconsole插件,我们可以连接到tomcat,测试jmx远程监控是否成功。如果连接不成功,请检查Linux环境下/etc/hosts文件,将内的IP更改为Linux主机的IP,然后保存,重启机器,再次启动tomcat,使用jconsole...

    socket连接测试用户端.jmx

    socket连接测试用户端.jmx

    使用RMI远程连接JVM.用JMX获取JVM的参数

    本文将深入探讨如何利用RMI远程连接到Java虚拟机(JVM),并通过JMX获取JVM的相关参数。 RMI是Java提供的一种机制,允许在不同JVM之间透明地调用对象的方法,就像这些对象都在同一台机器上一样。RMI的核心组件包括...

    《jmx技术介绍》配套源代码

    《JMX技术介绍》一书显然是为了深入探讨这一技术而编写的,配套源代码则提供了实践示例,帮助读者更好地理解和应用JMX。 1. JMX架构: JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端...

    jmx三种访问方式

    1. **JConsole工具**:Java提供了一个内置的JMX客户端——JConsole,它可以通过VM参数`-Dcom.sun.management.jmxremote`启动,然后通过JMX连接到指定的Java进程。JConsole提供了图形化的界面,用于查看和修改MBean的...

    TongWeb7的JMX监控.doc

    完成上述配置后,就可以使用之前获取的 JMX URL 来连接 TongWeb7 的 JMX 服务,例如 `service:jmx:rmi:///jndi/rmi://192.168.163.99:7200/jmxrmi`。你可以使用 Java 提供的 `jconsole` 工具,或者其他支持 JMX 的第...

    JMX以RMI方式连接的场景示例

    JMX以RMI方式连接的场景示例 JMX(Java Management Extensions)是一种Java技术,用于管理和监控应用程序。JMX框架主要由三部分组成:MBean(Managed Bean)、Agent(代理)和Client(客户端)。在本场景中,我们将...

    tomcat开启远程jmx连接方式

    **Tomcat开启远程JMX连接方式详解** Java Management Extensions (JMX) 是Java平台提供的一种标准管理框架,它允许开发者创建、管理和监控应用程序的各种资源,包括服务器、应用程序、设备和服务。在Tomcat这样的...

    JMX实战 JMX开发

    书中提供了几个典型的例子,兼顾各种开发平台,这些例子的代码稍作修改就可以直接应用于项目开发之中,代码源文件可以从图灵网站下载。本书内容广泛且深入,同时适用于各个层次的Web应用开发人员。

    jmxdemo.rar

    VisualVM是Java开发人员的得力助手,它集成了JMX功能,能够显示关于Java进程的各种详细信息,如CPU使用率、内存消耗、线程状态、类加载情况等。通过JMX,VisualVM可以连接到远程运行的Java应用,实时监控其性能和...

    beanshell-获取id.jmx

    Jemeter 压力测试时,需要动态获取序号或者流水号,此时可以通过beanshell 生成序号,请求报文中可以获取变量,生成需要的序列号

    java jmx agent不安全的配置漏洞如何改进(由浅入深代码范例和详细说明).docx

    2. 身份验证:通过对 JMX Agent 进行身份验证,可以确保只有授权用户可以连接到 JMX Agent。例如,我们可以使用用户名和密码来对 JMX Agent 进行身份验证。 3. 访问控制:通过对 JMX Agent 的访问控制,我们可以限制...

    Jmx实例demo下载

    5. **JMX连接器**:`jmxdemo`可能包含了JMX连接器的配置,如RMI连接器,允许远程客户端连接到MBean服务器进行管理操作。 6. **客户端示例**:项目可能还包含一个简单的客户端示例,展示了如何使用JMX API连接到...

    jmeter做的http并发测试完整例子(包含完整可执行脚本http_sample.jmx)

    压缩包里有:http_sample.jmx,JMeterPlugins-Extras.jar,JMeterPlugins-Standard.jar,ServerAgent-2.2.1.zip 1:安装Java8环境 2:安装apache-jmeter-3.1 ...5:启动Jmeter,修改jmx的配置,运行脚本。

    jboss远程调用JMX

    在JMX中,工厂模式经常被用来根据特定参数动态地创建MBeans。这个文件可能包含了创建特定类型MBean的逻辑,以及将它们注册到MBeanServer的过程。MBeanServer是JMX框架的核心,它负责管理MBeans、处理查询以及执行...

    一个jmx的小例子

    4. **客户端代码**:可能包含用于连接到JMX服务器并操作MBeans的代码,这可以是另一个Java程序或使用图形工具如JConsole。 5. **测试脚本**:如果`jmxtest`包含了测试用例,那么它可能包含了JUnit或其他测试框架的...

    JMX配置与使用

    客户端配置主要包括两部分:连接到JMX服务器的工具和配置连接参数。常用的JMX客户端工具有JConsole、VisualVM等,它们是Java SDK自带的。 - **JConsole**: 运行`jconsole`命令,选择"本地进程"或"远程进程",输入...

Global site tag (gtag.js) - Google Analytics