2017-05-04 120 views
0

我在Spring引导中使用Apache骆驼作为中间层实现我的代码,同时设置骆驼路由我使用quartz2组件为此我想使用外部石英。属性文件来覆盖默认的quartz.properties文件。有人可以帮我解决这个问题。 我试图使用CommandLineRunner来实现,但我得到的异常如下 org.springframework.beans.factory.BeanCreationException:创建名为'schedulerApplication'的bean时出错:注入自动装配依赖失败;嵌套异常是java.lang.IllegalArgumentException:无法解析值“$ {org.quartz.scheduler.instanceName}”中的占位符'org.quartz.scheduler.instanceName'“外部配置Spring引导和quartz.properties在Apache骆驼

回答

0

如果我明白你的意思,你一定是想要以外化你自己的石英特性,并尝试在骆驼石英2组件中使用它。 创建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"); 
    } 

希望这有助于

+0

谢谢巴拉吉你的回应还是我不清楚像什么在你的代码中是“sampleQuartz”,因为它应该是端点right.I在我的代码中使用quartz2组件。 –

+0

而不是写这样的cron表达式,我写了一个配置方法“quartzEndpoint”,它接受一个名称并从数据库中获取cron表达式。以简单的方式,你可以这样写 - from(“quartz2:// myGroup/myTimerName?cron = 0 + 0/5 + 12-18 +?+ * + MON-FRI”) –