2017-03-04 4 views
0

更新:何らかの理由で実現するのに少し時間がかかりましたが、設定ファイルがバンドルPID固有で、同じcfgファイルを2つの異なるバンドル内の青写真、私は競合状態を作り出していました。ターゲットバンドルでcfgファイルを使用するようにしてください。Karaf v4.0.8:複数の青写真が同じ永続IDの設定をロードできない

注:上記はブループリントバンドルにのみ適用されます。バンドルを動的に維持するためにOSGI ConfigAdminサービスに依存せず、Camelコンテキストのようなものからcfgファイルを使用したい場合は、それが問題ありません。

私はkaraf 4.0.8の 'deploy'フォルダから2つの青写真を配備しています。どちらも共通のセクションを持っています:

<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" 
    xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation=" 
    http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd 
    http://camel.apache.org/schema/blueprint https://camel.apache.org/schema/blueprint/camel-blueprint.xsd"> 

    <cm:property-placeholder id="common" persistent-id="common" update-strategy="reload" placeholder-prefix="$(" placeholder-suffix=")"/> 

    <cm:property-placeholder id="sqlcfg" persistent-id="12345" update-strategy="reload" placeholder-prefix="$[" placeholder-suffix="]"> 
    </cm:property-placeholder> 

「共通」から両方の設定を共通に読み込みたいと思います。ただし、 'etc'フォルダと同じpersistentIdおよびpropertiesファイルを共有する場合、2番目に配備される青写真はロードとアンロードを継続します。 ファイルを別のファイルから読み込むと、すべてのファイルが読み込まれます。

コミュニティからのアイデアなぜこの動作がありますか? ありがとうございます。

答えて

0

私の経験では、異なるpersistent-idを設定するか、update-strategy = "none"を設定します。これにより、2番目のモジュールがロード/アンロードループに入るのを止めます。

欠点は、設定ファイルの自動更新が失われることです。

関連する問題