2017-04-10 55 views
0

karaf ENV變量,我想進去camelContext karaf ENV變量我已經加入獲取內部camelContext

<ext:property-placeholder placeholder-prefix="$[" placeholder-suffix="]"/>

外camelcontext並試圖用內部camelcontext的karaf.home。但是它的失敗從該位置加載數據。我已經試過這樣

<camelContext id="_camelContext" xmlns="http://camel.apache.org/schema/blueprint"> <propertyPlaceholder id="config" location="file:$[karaf.home]/etc/application_config.prope‌​rties" /> </camelContext>

我們不能訪問它裏面camelcontext?

+0

我不確定這是否可行。你可以通過@PropertyInject註解來訪問正常的環境變量。 –

回答

0

Karaf變量定義爲JVM系統變量,而不是env變量。
你需要什麼? 如果您只是需要加載配置文件,請使用OSGi方法,並且不要直接引用任何路徑

<blueprint> 
    <cm:property-placeholder id="yourConfig" 
          persistent-id="file.name" /> 

    <camelContext> 
     <propertyPlaceholder location="blueprint:yourConfig" /> 

     <!-- Access properties using {{property.name}} --> 
     <route id="One" autoStartup="{{route.one.enabled}}" > ... 
    </camelContext> 
</blueprint> 

這將從${karaf.home}/etc/file.name.cfg加載屬性。
而且你的包也可以在其他容器中運行。

+0

我試過這個選項,我可以在camelContext中獲取屬性數據,但不能在routeContext中獲取。 – tvshajeer

+0

沒有看到您的代碼,我不能給更多的細節 –