gpt4 book ai didi

java - 无法在 Apache isis quartz 中注入(inject)服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:49:23 26 4
gpt4 key购买 nike

我在我的 apache isis 项目中使用 quartz 进行调度。我有一个 MyJob 类,它实现了 org.quartz.Job 并且它有方法 execute,当调度程序在给定时间触发时调用。

我的问题是,我有一个类 DemoService 并且它有一个方法 showDemo() 我想从 execute 方法中调用它。但是当调度程序运行时,它会在 demoService.showDemo() 处抛出 Null Pointer Exception。

我无法在该类中注入(inject)任何服务。它总是给出 NPE。如何将服务注入(inject) MyJob 类?

这是代码:-

public class MyJob implements Job {

@Inject
DemoService demoService;

public MyJob() {

}

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
demoService.showDemo();
}
}

最佳答案

最简单的方法是将要运行的逻辑放在AbstractIsisSessionTemplate 的子类中,然后从您的 quartz 作业中实例化并执行它。

Incode Platform 的 quartz 作业使用此技术来运行后台命令,请参阅 here ; quartz module从 quartz 的角度展示了这一点(我想你已经明白了)。

HTH丹

关于java - 无法在 Apache isis quartz 中注入(inject)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46398518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com