【问题标题】:JBoss 7 MBean dependency on another MBeanJBoss 7 MBean 对另一个 MBean 的依赖
【发布时间】:2013-09-07 09:07:31
【问题描述】:

我正在将项目从 JBoss 4.2.2 迁移到 JBoss 7.1.1。我们在启动时配置 MBean 和其他 bean 正在连接到此配置 MBean 以获取一些参数。 所以 jboss-service.xml 的配置是这样的:

    <mbean code="example.ConfigManager" name="exam:name=ConfigManager">        
         <attribute name="DataSourceName">java:jboss/datasources/myDS</attribute>
    </mbean>
...
    <mbean code="example.AnotherMBean" name="exam:name=AnotherMBean">
         <depends>exam:name=ConfigManager</depends>
         <attribute name="Login">system</attribute>
    </mbean>

在 jboss 7 中,我以所需的方式实现了 MBean(实现了 start() 和 stop() 方法),但是当启动 AnotherMBean 并尝试从 ConfigManager 获取信息时,我得到:

javax.management.InstanceNotFoundException: exam:name=ConfigManager

ConfigManager 没有问题,它只是在 AnotherMbean 之后加载。是否可以定义 MBean 的加载顺序?

附:不建议切换到@Startup 和@Singleton,由于我们的系统要求,目前无法实现。

谢谢!

【问题讨论】:

    标签: java jboss jboss7.x jmx mbeans


    【解决方案1】:

    因此,没有找到解决方法,因此重新配置我的应用程序以使用带有 @DependsOn 注释的 Singleton ejbs。在@PostConstruct 方法中创建了类似

        @PostConstuct 
        private void registerToJMX() {
           private MBeanServer platformMBeanServer;
           private ObjectName objectName = null;
           try {
               objectName = new ObjectName("tms:name=BlankNotifications");
               platformMBeanServer = ManagementFactory.getPlatformMBeanServer();
               platformMBeanServer.registerMBean(this, objectName);
           } catch (Exception e) {            
           }
        }
    

    在 JMX 控制台中注册它。

    【讨论】:

      猜你喜欢
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2011-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多