我正在使用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()
{
}
}
答案 0 :(得分:0)
我找到了解决方案。
我没有使用正确的注释。我必须使用EJB3注释。