apache camel中Spring引导和quartz.properties的外部配置

时间:2017-05-04 03:00:56

标签: spring spring-boot apache-camel quartz-scheduler

我在Spring引导中使用Apache camel作为中间层实现我的代码,而在camel中设置路由我使用的是quartz2组件,我想使用外部quartz.properties文件覆盖默认的quartz.properties文件。可以有人请帮我解决这个问题。 我尝试使用CommandLineRunner实现,但我得到如下的异常 org.springframework.beans.factory.BeanCreationException:创建名称为' schedulerApplication'的注册自动连接依赖项失败;嵌套异常是java.lang.IllegalArgumentException:无法解析占位符&org.quartz.scheduler.instanceName'价值" $ {org.quartz.scheduler.instanceName}"

1 个答案:

答案 0 :(得分:0)

如果我理解你的话,你必须想要将自己的石英属性外化并尝试在camel-quartz2组件中使用它。 在quartz.properties中创建自定义条目,如下所示

quartz.uri=quartz://group/quartzScheduler?cron=0+05+21+?+*+*

以下是示例路线

public void configure() throws Exception {
        super.configure();
        String externalService= PropertyParser.getInstance().getStringProperty(Key.Service);
        from(quartzEndpoint("sampleQuartz"))
                .to(externalService)
                .process(new Processor() {
                    public void process(Exchange e) throws Exception {
                        log.info("Before storing " + MessageHelper.extractBodyAsString(e.getIn()));
                        MyHelper.writeCLOBPut(e);
                        log.info("After storing " + MessageHelper.extractBodyAsString(e.getIn()));
                    }
                }).log("Stored in DB");
    }

希望这有帮助