我正在尝试访问部署到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 {
答案 0 :(得分:0)
MUTHU;
对于 AttributeNotFoundException :至少我们知道MBean实际已经注册了:)所以问题是,你的TestService mbean是否定义了一个名为 Instance 的属性并且做了它返回一种 TestServiceMBean 并实际返回这个?如果没有,那就是你需要做的。
<强> TestService的:强>
public TestServiceMBean getInstance() {
return this;
}
<强> TestServiceMBean:强>
public TestServiceMBean getInstance();
对于调用处理程序,您不需要强制转换,但返回的类将没有您期望的名称。它被称为 Proxy0 ,因为它是一个合成的动态代理,但您应该发现它确实实现了 TestServiceMBean 接口,您应该能够针对它调用操作。