0
如何在石英觸發器中訪問我的OSGi服務?石英在卡拉夫
下面,當定時器被觸發時,我的服務公司Dao爲空。我是否需要將捆綁環境提供給調度程序或作業?如果是這樣,怎麼樣?
@Service
@Component(immediate = true, specVersion = "1.1", inherit = true)
public class TechnicalStageTimer implements Job {
@Reference(cardinality = MANDATORY_UNARY, policy = DYNAMIC)
protected CompanyDao companyDao;
private static final Logger LOG = LoggerFactory.getLogger(TechnicalStageTimer.class.getCanonicalName());
Scheduler scheduler;
@Activate
public void start(BundleContext context) throws Exception {
LOG.warn("Starting Timer TechnicalStageTimer");
SchedulerFactory sf = new StdSchedulerFactory();
scheduler = sf.getScheduler();
JobDetail job = JobBuilder.newJob(TechnicalStageTimer.class).build();
Trigger trigger = TriggerBuilder.newTrigger()
.withSchedule(CronScheduleBuilder.dailyAtHourAndMinute(11, 00)) // every day at 11:00
.build();
scheduler.scheduleJob(job, trigger);
scheduler.start();
}
@Deactivate
public void stop(BundleContext context) throws Exception {
scheduler.shutdown(true);
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
LOG.warn("Timer Triggered");
List<Company> companies = companyDao.getPool();
}
}
我將公司Da添加到作業數據映射中,並從作業執行服務中訪問它。 – user2641043 2014-10-06 16:33:56