我在JBoss 4.2.2上运行了一个Web应用程序。为了监控性能,我启用了Java 5附带的内部平台JMX服务器。换句话说,我补充说:
-Dcom.sun.management.jmxremote
到JBoss的启动脚本。这按预期工作。但是,因此,所有MBean现在都在平台MBeanServer上注册。我不希望这样,我希望它们在JBoss的MBeanServer上注册。
难点在于我使用Spring来注册我的托管bean。为此,使用MBeanExporter
。因此,我需要告诉我的MBeanExporter
在注册bean时使用JBoss'MBeanServer。但是,MBeanExporter
中唯一影响使用服务器的方法是setServer(MBeanServer mBeanServer)
。问题是我只知道如何以编程方式获取对正确的MBeanServer 的引用,而不是在声明MBeanExporter
的Spring的XML中。
我的选项似乎是:
MBeanExporter
,覆盖某些方法,以便加载正确的MBeanServer PostBeanProcessor
,然后调用setServer
最惯用的方式是什么?我做的事真的很傻吗?
答案 0 :(得分:6)
您可以使用JBoss API中的静态工厂方法将MBeanServer注入MBeanExporter:
<bean class="org.springframework.jmx.export.MBeanExporter">
<property name="server">
<bean class="org.jboss.mx.util.MBeanServerLocator" factory-method="locateJBoss"/>
</property>
<!-- Add the rest of your MBeanExporter properties here -->
</bean>
答案 1 :(得分:0)
问题是我只知道如何 得到正确的参考 MBeanServer以编程方式
如果您可以通过编程方式获取引用,为什么不能通过MBeanExporter#server属性连接它?