首页 > 解决方案 > 使用带有消息驱动 Bean 的 Quartz 作业

问题描述

我正在将一个项目从 Jboss AS6 迁移到 Wildfly 18,我遇到了一些消息驱动 bean 的问题。我试着按照这里的例子:http: //www.mastertheboss.com/jboss-frameworks/jboss-quartz/quartz-2-tutorial-on-jboss-as-7。我将石英依赖项添加到我的 pom 中,并确保我定义了一个资源适配器。当我尝试实际部署我的应用程序时,它失败并出现错误:

ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 1) WFLYCTL0013: Operation ("add") failed
- address: ([("deployment" => "Product.ear")]) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => [
        "jboss.ra.\"jboss.ra.quartz-ra\"",
        "jboss.ra.quartz-ra"
    ],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "jboss.deployment.subunit.\"Product.ear\".\"Product-ejb.jar\".component.UpdateReleasePlansMDB.CREATE is missing [jboss.ra.\"jboss.ra.quartz-ra\"]",
        "jboss.deployment.subunit.\"Product.ear\".\"Product-ejb.jar\".component.ImageUploadMDB.CREATE is missing [jboss.ra.quartz-ra]"
    ] }

我不太确定我在这里做错了什么,而且我似乎找不到任何最近的文档。任何帮助将不胜感激。

我的 MDB 代码:

@MessageDriven(name = "UpdateReleasePlansMDB", messageListenerInterface = org.quartz.Job.class,
    activationConfig = {@ActivationConfigProperty(propertyName = "cronTrigger", propertyValue = "0 0 6 ? * MON")})
@ResourceAdapter("quartz-ra.rar")
@TransactionManagement(TransactionManagementType.BEAN)
public class UpdateReleasePlansMDB implements Job
{
    public UpdateReleasePlansMDB()
    {
        super();
    }

    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException
    {
        //do something here
    }
}

pom.xml:

<dependencies>
       <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.3.0</version>
      </dependency>
      <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz-jobs</artifactId>
        <version>2.3.0</version>
      </dependency>
</dependencies>

标签: javawildflyjava-ee-6message-driven-beanquartz

解决方案


推荐阅读