我为JBoss Fuse Fabric(v7.2.0.redhat-024)中运行的服务编写了自定义 MBean
-
界面:
com.mycompany.myservice.MyServiceManagerMBean
-
实施类:
com.mycompany.myservice.MyServiceManager
我的MBean被JBoss Fuse注册或“发现”的最简单方法是什么?
我尝试将以下内容添加到我的blueprint.xml中,但它似乎不起作用:
<bean id="org.apache.cxf.management.InstrumentationManager" class="org.apache.cxf.management.jmx.InstrumentationManagerImpl">
<property name="enabled" value="true" />
<property name="bus" ref="cxf" />
<property name="usePlatformMBeanServer" value="true" />
</bean>
我使用部署我的服务的配置文件运行JBoss Fuse Fabric,然后启动JConsole并连接到名为org.apache.karaf.man.Main的第一个本地进程(其中有2个) .
但我找不到我的MBean - 我希望在MBean选项卡上看到 com.mycompany.myservice
,但它不存在 .
相反,我可以在这个树节点下看到我的所有数据源jmx bean:
com.mycompany.anotherservice.datasources
.
但是,通过设置jmxEnabled = true来配置数据源MBean,因此我不知道如何配置和公开我自己的MBean .
有人可以告诉我这里需要做什么吗?
提前致谢 .
2 回答
这是在JBoss Fuse blueprint.xml配置中执行此操作的方法
感谢我的同事Y.H.求助 :)
我收到了以下代码片段,可以解决这个问题 .
首先,通过
<property name="bus" ref="cxf"/>
将cxf总线注入blueprint.xml中的bean,并使用它通过InstrumentationManager注册bean:我仍然遇到这个问题,
bus.getExtension(InstrumentationManager.class)
返回null,但我被告知这是正确的解决方案......