0

バンドルを Apache Felix (実際には Sling) ホストにデプロイしました。バンドルにはいくつかの設定可能な要素が含まれており、そのバージョンは 2.0 でした。

小さなコードの変更のためにバンドルを v2.0.1 に更新しましたが、バンドルはその構成を正しく取得しません。Felix Web コンソールで構成された値を取得するのではなく、コードで設定されたデフォルトのままです。

ログに次のエラー メッセージがあります。「[Configuration Updater] org.apache.felix.scr Cannot use configuration pid=com.mypackage.MyClass for bundle inputstream:my-bundle-2.0.1.jar because it belongs to bundle inputstream. :my-bundle-1.0.jar" が問題の原因のようです。

でも:

  1. Web インターフェイスから入力ストリームの値を編集できません。サーバーを停止し、構成ファイルを手動で編集して再起動するしかありません。確かにバンドルを更新すると、構成も更新されるはずですか?

  2. 入力ストリームは v1.0 を指定していますが、v2.0 にアップグレードしたときにバンドルに問題はありませんでした。ここで何が違いを生んだのですか?

  3. 私は2つのサーバーで同じことをしましたが(正確ではないかもしれません!)、1つのサーバーで構成がinputstream = v2.0(およびv2.0.1のバンドル)を指定しているようで、正常に動作します。このサーバーで入力ストリームのバージョンが更新された原因は何ですか? (おそらく2への答えと同じです-プロセスのどのステップがどの順序で実行されたかに正確に依存すると思います。)

ありがたいアドバイス - Felix Web コンソールを介してバンドルを管理するための手順やトラブルシューティングの提案を提供するドキュメントを見つけることができませんでした。

4

1 に答える 1

0

可能であれば、バンドルを完全に停止して削除し、 Sling を使用してインストールします。たとえば、WebDAV を使用maven-sling-pluginしてフォルダーにドロップするか、ドロップします。/apps/myapp/install

この方法で一貫性を保つのが最も簡単で、インストールは適切に自動化されており、バンドルのアップグレードが適切に処理されます。

于 2012-05-29T11:24:02.717 に答える