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

标签 java ejb-3.0 weblogic quartz-scheduler

我使用的是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/

相关文章:

java - 我可以在远程/本地接口(interface)中使用继承吗? (EJB3)

apache - 在 Solaris 上嗅探/捕获 Apache 和 Weblogic 之间的所有流量

跨不同 JVM 的 Java 关闭 Hook

java - 如何使按钮事件将输出写入文本字段

java - Android 应用程序解析 JSON 数据错误?

java - 无状态 session Bean 可以保护 final方法吗?

java - 如何将文件从 Java 客户端传输到 Java 服务器?

ssl - 安全证书 SSL weblogic

java - java中的itext,不能使用PdfContentByte cb = writer.getDirectContent();

java - 将从 Hibernate Native Query 返回的值映射到模型