2017-04-10 8 views
0

内部karaf ENV変数を取得し、私はcamelcontext外私はcamelContext 内部karaf ENV変数を取得しようとしていますcamelContext

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

を追加し、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変数は、env変数ではなくJVMシステム変数として定義されています。
何が必要ですか? 設定ファイルをロードするだけでよい場合は、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

あなたのコードを見ることなくもっと詳細を与えることはできません –

関連する問題