0

私はApache Karafを初めて使用します。jarたとえば、ファイルにパッケージ化されたJavaプログラムがありますA-1.0.jar。フォルダーA.jarの下にデプロイした Karaf インスタンスもあります。deploy今、私はこれjarを使用して実行しています:

java -jar A.jar

画面にいくつかの数字を出力します。A-2.0.jarこれが実行されている間、同じパス ( deployKaraf ホームの下のフォルダー)にデプロイしました。Karaf ログから、Karaf がすでに両方のバンドルをインストールしていることがわかります。

私の質問は、実行中A-1.0.jarに、Karaf を実行することになっていA-2.0.jarますか (Karaf はこの新しいバージョンを取得したため)、今後は? または、何か不足していますか?Karaf のホットデプロイメント戦略をテストするにはどうすればよいですか?

前もって感謝します、

アビシェーク

4

1 に答える 1

0

やっと理解が深まった…

カスタムjar実行は、Karaf とは関係がなく、実行についても認識していません (これらは 2 つの別個の JVM インスタンスであるため)。

BundleActivator実際のコードを呼び出す内にを記述し、jarそれを Karaf にデプロイ (またはdeployフォルダーの下に配置) して開始する必要があります。Karaf は自動的に呼び出さBundleActivatorれるため、カスタム コードが実行されます。

Ajarは常にファイル内で一意に識別さBundle-SymbolicNameMANIFESTます (jarファイル名は関係ありません)。またBundle-Version、実際のバージョンを示します。A-1.0.jarとが同じ名前である場合A-2.0.jar、Karafjarは実行していたのと同じものの最新バージョンを後で想定します ( A-1.0.jar)。したがって、一度見つかっA-2.0.jarたら、A-1.0.jarの実行が完了すると自動的に実行されます。

于 2014-03-20T04:01:28.110 に答える