gpt4 book ai didi

java - MBean 上未找到任何操作

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:53 29 4
gpt4 key购买 nike

基本上,我遵循标准的基本 JMX 教程并使用两种方法注册 MXBean。

public interface QueueSamplerMXBean {
public QueueSample getQueueSample();
public void clearQueue();
}

但是,当我尝试查询注册的 MBean 时,它只返回clearQueue。这是我的示例程序:

MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();

// Construct the ObjectName for the QueueSampler MXBean we will register
ObjectName mxbeanName = new ObjectName("com.example:type=QueueSampler");

// Create the Queue Sampler MXBean
Queue<String> queue = new ArrayBlockingQueue<String>(10);
queue.add("Request-1");
queue.add("Request-2");
queue.add("Request-3");
QueueSampler mxbean = new QueueSampler(queue);

// Register the Queue Sampler MXBean
mbs.registerMBean(mxbean, mxbeanName);

MBeanInfo info = mbs.getMBeanInfo(mxbeanName);
for(MBeanOperationInfo op : info.getOperations()) {
System.out.println("operation = " + op.getName());
}

我认为这就是为什么我不断收到“java.lang.IllegalArgumentException...在 MBean 上找不到操作 XXXXXX(调用的方法名称)...我在尝试通过 Jolokia 代理(JSON 到 JMX 桥)调用 MXBean 方法时收到此异常。我调用具有 void 返回类型的方法没有问题。

有人知道为什么 getOperations 不返回以 JavaBean 对象作为返回类型的方法吗?这太奇怪了。我一定错过了一些非常简单的东西。

谢谢!

最佳答案

我敢打赌,您的 MBean 上有一个属性 queueSample,因为 getFoo 通常会转换为可读属性 foosetFoo 转换为可写属性,如果您有 getter 和 setter,则该属性是 r/w。

使用 jconsole 等工具连接到 VM 并检查您的 MBean。

关于java - MBean 上未找到任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25861177/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com