我正在尝试使用Camel和Quartz2设置调度程序,我的目标是仅在特定时间段内从队列中读取消息。我在启动服务器时收到以下错误。
org.apache.camel.spring.boot.CamelSpringBootInitializationException: org.apache.camel.FailedToCreateRouteException:无法创建路由 ROUTE1: 路线(ROUTE1)[[从[quartz2:?// simpleTimer的cron = 0/1 + 0 + + 13-15 ... 因为无法解析端点: quartz2:// simpleTimer?cron = 0%2F1 + 0 + 13-15 +%3F + * + MON-FRI由于:否 使用scheme找到的组件:quartz2
这是pom条目
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-quartz2</artifactId>
<version>2.19.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-dependencies</artifactId>
<version>2.19.2</version>
</dependency>
路线中的代码段
from("quartz2://simpleTimer?cron=0/1+0+13-14+?+*+MON-FRI")
.log("Reading msgs")
.from("some queue")
.bean("myBean")
也试过这个
from("quartz2://testGroup/someName?cron=0/1+0+13-14+?+*+MON-FRI").
我多次尝试解决问题但失败了,任何人都可以帮我解决这个问题吗? 我可以使用simpleTimer和Cron设置,还是有其他方法吗? 任何有关此方面的建议/帮助都将受到高度赞赏。
答案 0 :(得分:0)
该错误表示您尚未将maven中的依赖项添加到camel-quartz2组件中。
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-quartz2</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
答案 1 :(得分:0)
问题是你在相同的路线上放了2。每条路线只有 中的。
当您从队列中读取时,例如使用jms组件,您可以在消息到达后直接获取消息。所以不需要quarz组件。
您使用哪个组件从队列中读取?可能这个组件有更多的选项可以帮助你!
答案 2 :(得分:0)
当我在路径文件中创建QuartzComponent的Bean实例时,这解决了。另外,我们可以在路径定义中有多个“from”。