gpt4 book ai didi

java - quartz 工作内部注入(inject)

转载 作者:行者123 更新时间:2023-12-02 08:18:10 25 4
gpt4 key购买 nike

我使用的是weblogic 11,ejb3.0

我正在尝试在实现 Job (org.quartz.job) 的类中进行 Ejb 注入(inject)没有成功。

所以我想将我的工作类设置为无状态 bean。像这样:

 @Stateless(mappedName = "StartSyncJob")
@Local(
{ StartSyncJob.class })
public class StartSyncJob implements Job
...

然后再次尝试内部 Ejb 注入(inject),但出现异常:

blogic.ejb.container.compliance.ComplianceException: Business method notify in class java.lang.Object must not be declared as final

我猜我无法注释一个实现 Job 接口(interface)的类。

还有其他想法我该怎么做吗?

我的主要目标是从我的 Job 类调用另一个部署中存在的无状态 bean。

最佳答案

容器只能注入(inject)由容器创建/管理的东西。

Quartz 实例化作业实例。

因此,两者不能作为一个框架一起发挥作用。

您可以创建自己的 Quartz JobFactory 类实现来控制作业的实例化 - 并且您的实现可以委托(delegate)给其他东西,例如容器。

此外,在您的工作中,您可以自己查找无状态 bean,然后调用它。 Quartz 附带了一个 EjbInvokerJob 来完成此任务(在执行时调用已配置的 ejb)。

关于java - quartz 工作内部注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5965458/

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