Apache camel 从属性文件读取Camel常量
我正在尝试从属性文件读取时间延迟 已在我的属性文件中定义:Apache camel 从属性文件读取Camel常量,apache-camel,Apache Camel,我正在尝试从属性文件读取时间延迟 已在我的属性文件中定义: time_inMilis=15000 我已将骆驼上下文xml配置为: <bean id="property" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>file:/D
time_inMilis=15000
我已将骆驼上下文xml配置为:
<bean id="property" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>file:/D:/Develop/resources/my.properties
</value>
</property>
</bean>
<camel:camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<propertyPlaceholder id="properties" location="file:/D:/Develop/resources/my.properties"/>
<camel:route id="delayQueue">
<camel:from uri="seda:queue1" />
<delay asyncDelayed="true">
<constant>${time_inMilis}</constant>
</delay>
<camel:to uri="seda:queue2" />
</camel:route>
</camel:camelContext>
文件:/D:/Develop/resources/my.properties
${time_inMilis}
camel不会抛出任何错误,但它似乎忽略了${time\u inMilis},并将延迟时间设置为0
从属性文件中读取延迟常数的正确方法是什么?首先,使用camel:propertyPlaceholder而不是声明bean属性就足够了。
第二个错误是,在试图读取时间单位属性值时,使用了而不是表达式。
第三,当你们试图得到你们的财产的价值时,你们应该明确地告诉骆驼你们正在寻找财产 如果您的上下文定义propertiesPlaceholder如下:
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<propertyPlaceholder id="props" location="classpath:/org/smp/eip/sample.properties"/>
<package>org.apache.camel.example.spring</package>
</camelContext>
使用原始帖子中的Spring DSL,读取属性的正确方法是:
<camel:route id="delayQueue">
<camel:from uri="seda:queue1" />
<delay asyncDelayed="true">
<simple>${properties:time_inMilis}</simple>
</delay>
<camel:to uri="seda:queue2" />
</camel:route>
${properties:time\u inMilis}
<camel:route id="delayQueue">
<camel:from uri="seda:queue1" />
<delay asyncDelayed="true">
<simple>${properties:time_inMilis}</simple>
</delay>
<camel:to uri="seda:queue2" />
</camel:route>