在JBOSS AS 7.1.1中获取MBean服务的实例

时间:2012-06-12 13:56:18

标签: jmx jboss7.x mbeans

我正在尝试访问部署到JBOSS AS 7.1.1中的MBean服务。我的MBean服务也是一个队列侦听器。我正在尝试获取此MBean服务的实例,以将其注册为另一个SAR中的队列侦听器。

我尝试了这段代码,但它无效,

MBeanServer server  = ManagementFactory.getPlatformMBeanServer(); 
ObjectName mbeanObject =
        new ObjectName("myproject.service.Test:service=com.mytest.program");
TestServiceMBean handler = MBeanServerInvocationHandler.newProxyInstance(
      server, mbeanObject, TestServiceMBean.class, false);

我也试过这个

TestServiceMBean testMBeanService =
       (TestServiceMBean)server.getAttribute(mbeanObject,  "Instance");

在这两种情况下,我都没有得到TestServiceMBean的实例。任何人都可以帮助我获得MBean测试服务的访问权。

<mbean code="com.mytest.program.TestService"
      name="myproject.service.Test:service=com.mytest.program">
</mbean>

以下是代码:

public class TestService implements TestServiceMBean, MessageListener {

1 个答案:

答案 0 :(得分:0)

MUTHU;

对于 AttributeNotFoundException :至少我们知道MBean实际已经注册了:)所以问题是,你的TestService mbean是否定义了一个名为 Instance 的属性并且做了它返回一种 TestServiceMBean 并实际返回这个?如果没有,那就是你需要做的。

<强> TestService的:

public TestServiceMBean getInstance() {
    return this;
}

<强> TestServiceMBean:

public TestServiceMBean getInstance();

对于调用处理程序,您不需要强制转换,但返回的类将没有您期望的名称。它被称为 Proxy0 ,因为它是一个合成的动态代理,但您应该发现它确实实现了 TestServiceMBean 接口,您应该能够针对它调用操作。