我正在使用 JBoss5.1.x AS,EJB3.0。我正在尝试将作业(使用 Quartz)添加到我的部署中。我正在注册一个新服务,因此它将在应用程序部署时初始化调度程序。
我的问题是,当我部署我的应用程序时,该服务从未注册过。
我的代码:
接口(interface):
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()
{
}
}
最佳答案
我找到了解决方案。
我没有使用正确的注解。我必须使用 EJB3 注释。
关于java - 服务未在启动时注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4913750/