【问题标题】:Apache camel cron error because of Failed to resolve endpoint: cron由于无法解析端点而导致的 Apache camel cron 错误:cron
【发布时间】:2020-06-26 06:48:01
【问题描述】:

我尝试将骆驼与 cron 表达式一起使用。因为我需要 3 个不同的事情来处理 cron 表达式,3 个不同的时间。每天、每月和即时检查远程文件。我不能用春季批次做到这一点。所以,我选择了骆驼。

@Override
public void configure() throws Exception {

    onException(Exception.class)
        .process(lifeDispatchExceptionProcessor)
        .handled(true)
        .transform()
        .simple("Error reported: ${exception.message} - cannot process this message.");

    from("cron:tab?schedule=0/3 0/1 * 1/1 * ? *")
        .setBody().constant("event")
        .log("${body} faafs")
        .process(documentProcessor);
    
}

我将此方法添加为 hello world,但即使这样也不起作用:

//org.apache.camel.spring.boot.CamelSpringBootInitializationException: org.apache.camel.FailedToCreateRouteException: // 创建失败 route route147: Route(route147)[[From[cron:tab?schedule=0/3 0/1 * 1/1

  • ? ]... // 因为 Failed to resolve endpoint: cron://tab?schedule=0%2F3+0%2F1++1%2F1++%3F+ due至:无组件 使用方案找到:cron

这是 pom.xml:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-core</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>jaxp-ri</artifactId>
            <groupId>com.sun.xml.parsers</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-quartz2</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>jaxp-ri</artifactId>
            <groupId>com.sun.xml.parsers</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jackson</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>jaxp-ri</artifactId>
            <groupId>com.sun.xml.parsers</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jms</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>jaxp-ri</artifactId>
            <groupId>com.sun.xml.parsers</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ftp</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>jaxp-ri</artifactId>
            <groupId>com.sun.xml.parsers</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-bindy</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-crypto</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jpa</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-spring-boot-starter</artifactId>
    <version>2.18.1</version>
</dependency>
<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-kafka</artifactId>
    <exclusions>
        <exclusion>
            <artifactId>jaxp-ri</artifactId>
            <groupId>com.sun.xml.parsers</groupId>
        </exclusion>
    </exclusions>
</dependency>

我希望能够使用cron表达式,所以camel会根据cron表达式进行检查。有什么帮助吗?

【问题讨论】:

    标签: java cron apache-camel


    【解决方案1】:

    来自 Cron Components 的 Camel Doc,您必须在使用前注入依赖项 camel-cron

    <dependency>
        <groupId>org.apache.camel</groupId>
        <artifactId>camel-cron</artifactId>
        <version>x.x.x</version>
        <!-- use the same version as your Camel core version -->
    </dependency>
    

    自 3.1 版以来 Camel 中可用的 cron 组件。对于 3.1 以上的版本,可以考虑使用the cron trigger method under quartz2 component

    【讨论】:

    • 上面写着Dependency 'org.apache.camel:camel-cron:' not found
    • 可能你使用的是3.1之前的版本,那就试试quartz2下的cron触发方法
    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多