noz*_*cle 8 java service jboss mbeans java-ee
我正在尝试构建一个应该在每次启动服务器时自动启动的JBoss服务.
我的服务有以下类结构:
public interface CumbiaXPMServiceMBean extends org.jboss.system.ServiceMBean
public class CumbiaXPMService extends org.jboss.system.ServiceMBeanSupport implements CumbiaXPMServiceMBean
Run Code Online (Sandbox Code Playgroud)
我还为我的服务获得了以下配置文件 - jboss-service.xml:
<server>
<mbean code="uniandes.cumbia.xpm.jboss.CumbiaXPMService"
name="jcumbia:service=JCumbiaEngine">
<depends>jcumbia:service=cumbiaConsole</depends>
<attribute name="LocationInCumbia" attributeClass="java.lang.String">XPMEngine</attribute>
</mbean>
</server>
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何自动启动此服务?
我希望JBoss将方法start()作为加载过程的一部分调用,但它不是:我的start()方法中有很多loggin代码,但我没有看到任何输出.
但是,当我使用JMXConsole查看MBean状态时,其状态(StateString)为"已启动".
问题解决了
我找到了解决问题的方法.我重写了方法start(),stop(),destroy()和create(); 尽管如此,因为我正在扩展抽象类ServiceMBeanSupport,所以我应该重写方法startService(),stopService()等.
我只是提出我的代码的方法start()方法的方法startService(),现在我需要的一切都表现:只要是满足其依赖性,我的服务已启动并执行方法startService().
我想得出的结论是:虽然一个MBean的生命周期涉及调用创建(),启动(),停止()和destroy(),抽象类ServiceMBeanSupport的实现使用这些方法来处理生命周期.然而,它提供受保护的方法*Service()以允许程序员参与生命周期.
问题解决了
我找到了解决问题的方法.我重写了方法start(),stop(),destroy()和create(); 尽管如此,因为我正在扩展抽象类ServiceMBeanSupport,所以我应该重写方法startService(),stopService()等.
我只是提出我的代码的方法start()方法的方法startService(),现在我需要的一切都表现:只要是满足其依赖性,我的服务已启动并执行方法startService().
我想得出的结论是:虽然一个MBean的生命周期涉及调用创建(),启动(),停止()和destroy(),抽象类ServiceMBeanSupport的实现使用这些方法来处理生命周期.然而,它提供受保护的方法*Service()以允许程序员参与生命周期.
归档时间: |
|
查看次数: |
10365 次 |
最近记录: |