我正在将项目从 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 定义加载顺序?
PS 不建议切换到@Startup 和@Singleton,由于我们的系统要求,目前还不可能。
谢谢!