最初,我使用基于文件的bridgePropertyPlaceholder来动态设置restConfiguration端口。
count = 0
for res in results['aggregations']['group_by_time_interval']['buckets']:
cpu_total_avg = res['cpu_used_avg_pct']['value']
if float(cpu_total_avg) == 0.0:
count += 1
<bean id="bridgePropertyPlaceholder" class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>file:./connection_${ENV}.properties</value>
</list>
</property>
</bean>
<restConfiguration component="restlet" host="localhost" port="{{rest.port}}"/>
的值来自环境变量,${ENV}
的值来自{{rest.port}}
现在,我要避免使用connection_${ENV}.properties
来绕过新部署系统的限制,并将connection_${ENV}.properties
的值移到环境变量中,然后按一下:
{{rest.port}}
如果我进一步如下更改restConfiguration
Caused by: java.lang.IllegalArgumentException: Property with key [rest.port] not found in properties from text: {{rest.port}}
我遇到了类型转换问题:
<restConfiguration component="restlet" host="localhost" port="${rest.port}"/>
我的问题是:如何在不使用基于文件的属性占位符的情况下设置动态restConfiguration端口?
备注:我知道存在使用Java VM参数(即-Drest.port = 1234)的解决方法,但是此方法不是我想要的。