ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java – 强制Spring的MBeanExporter使用特定的MBeanServer

2019-08-27 16:48:38  阅读:265  来源: 互联网

标签:mbeans java spring jboss jmx


我有一个在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,找到JBoss的MBeanServer,然后调用setServer
> JNDI?仅在MBeanServer在JNDI中公开时才有效,但我无法找到它.

什么是最惯用的方式?我做的事真的很傻吗?

解决方法:

您可以使用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>

标签:mbeans,java,spring,jboss,jmx
来源: https://codeday.me/bug/20190827/1742925.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有