java - JMX连接客户端

标签 java jmx

我想创建一个 JMX 客户端,它可以与我的服务器一起使用。我可以使用 jconsole 连接到我的服务器,但是如何使用 java 代码来做到这一点。

这是我的服务器代码:

            MBeanServer mbeanServer = ManagementFactory
                .getPlatformMBeanServer();

        //giving name for service
        ObjectName objectName = new ObjectName("bean:name=logService");
        RequiredModelMBean mbean = new RequiredModelMBean();

        mbean.setManagedResource(logService, "objectReference");

        Descriptor logStringDescriptor = new DescriptorSupport(
                new String[] { "name=logString",
                        "descriptorType=attribute",
                        "getMethod=getLogString", "setMethod=setLogString" });
        
        ModelMBeanAttributeInfo logStringAttribute = new ModelMBeanAttributeInfo(
                "logString", "java.lang.String", "String to be logged",
                true, true, false, logStringDescriptor);

        ModelMBeanOperationInfo getLogStringOperation = new ModelMBeanOperationInfo(
                "Get the log string",
                LoggerService.class.getMethod("getLogString"));
        
        ModelMBeanOperationInfo setLogStringOperation = new ModelMBeanOperationInfo(
                "Set the log string", LoggerService.class.getMethod(
                        "setLogString", String.class));

        ModelMBeanInfo mbeanInfo = new ModelMBeanInfoSupport(
                "LoggerService", "Logger Service",
                new ModelMBeanAttributeInfo[] { logStringAttribute }, null,
                new ModelMBeanOperationInfo[] { getLogStringOperation,
                        setLogStringOperation }, null);

        mbean.setModelMBeanInfo(mbeanInfo);
        mbeanServer.registerMBean(mbean, objectName);

最佳答案

很简单:)

            MBeanServer mbeanServer = ManagementFactory
                .getPlatformMBeanServer();


        //giving name for service
        ObjectName objectName = new ObjectName("bean:name=logService");

        String str = (String) mbeanServer.getAttribute (objectName, "logString");
        System.out.println(str);

关于java - JMX连接客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12259598/

相关文章:

java - Objectify - 与 IN 过滤器操作相反

java - 为什么 Java 在配置 JMX 时会打开 3 个端口?

variables - 如何在变量中获取 JMX Jmeter 文件名

java - 在 Java 中创建 MBean

java - 如何使用 JMX API 获取 tomcat 7 的内存使用情况?

java - 连接到 ipv6 JMX 服务 URL 的 jconsole

java - strictfp 敏感 JVM 示例

java - 如何在 Windows 7 平台上用 Java 运行 Linux 命令?

java - RecyclerView 内具有多种 View 类型的 Recyclerview 显示错误的布局

java - 将 Hibernate 对象序列化为 JSON 时抛出异常