服务未在启动时注册

时间:2011-02-06 14:07:31

标签: java jboss ejb-3.0 quartz-scheduler jboss5.x

我正在使用JBoss5.1.x AS,EJB3.0。我正在尝试添加一个作业(使用Quartz)到我的部署。我正在注册一个新服务,因此它将在应用程序部署时启动调度程序。

我的问题是,在部署应用程序时,服务永远不会被注册。

我的代码:

接口

public interface ComponentMonitoringService
{
    void create() throws Exception;
    void start() throws Exception;
    void stop();
    void destroy();
}

服务

@Service(objectName = "com.mirs.ecms.timer:service=ServerStartupManager")
@Management(ComponentMonitoringService.class)
public class ServerStartupManager implements ComponentMonitoringService
{
    private SchedulerFactory schedulerFactory = null;
    private Scheduler scheduler = null;
    Logger logger = Logger.getLogger("ecms.log");

    public void create() throws Exception
    {
    }

    public void start() throws Exception
    {
    // Write your startup code

    initScheduler();
    }

    private void initScheduler() throws ParseException, SchedulerException
    {
        schedulerFactory = new StdSchedulerFactory();
        scheduler = schedulerFactory.getScheduler();

        JobDetail startECMSJob = new JobDetail("startECMSJob", "group1", StartECMSJob.class);
        CronTrigger trigger1 = new CronTrigger("cronTrigger", "TriggersGroup1", "0 0/5 * * * ?");

        scheduler.scheduleJob(startECMSJob, trigger1);

        scheduler.start();
    }

    public void stop()
    {
        try
        {
            scheduler.shutdown();
        }
        catch (Exception e)
        {
            logger.error("ServerStartupManager Failure occured during Manager stop", e);
        }
    }

    public void destroy()
    {
    }
}

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

我没有使用正确的注释。我必须使用EJB3注释。