使用camel http4的系统属性代理设置

时间:2015-07-31 11:24:16

标签: spring http proxy apache-camel system-properties

我试图使用系统属性' http4组件的代理设置无济于事。

documentation给出了这个例子:

<camelContext>
    <properties>
        <property key="http.proxyHost" value="172.168.18.9"/>
        <property key="http.proxyPort" value="8080"/>
    </properties>
</camelContext>

但那只是使用硬编码值。

有没有办法在camelContext属性中使用占位符?

1 个答案:

答案 0 :(得分:1)

首先,您需要PropertiesComponent来解析<camelContext>中的属性:

<bean id="propertiesComponent" class="org.apache.camel.component.properties.PropertiesComponent" />

如果您只需要支持以下某项内容,则无需指定位置:

现在您可以在camelContext属性中使用占位符:

<camelContext>
    <properties>
        <property key="http.proxyHost" value="{{http.proxyHost}}"/>
        <property key="http.proxyPort" value="{{http.proxyPort}}"/>
    </properties>
</camelContext>

另外需要注意的是,如果未设置系统属性,则会失败。您可以(也可能应该)在冒号后指定默认值

<property key="http.proxyHost" value="{{http.proxyHost:}}"/>
<property key="http.proxyPort" value="{{http.proxyPort:}}"/>

确保它在两种情况下均有效。