最終更新日 :
2021年4月27日
問題点
新しいバージョンの OSGi jar をデプロイするとき、サービス/コンポーネント設定は、新しいバージョンではなく、古いバージョンの jar と連結されます。
現象
次のいずれかのメッセージがログファイルに表示されます:
- * エラー * [OsgiInstallerImpl] org.apache.felix.scr バンドル jcrinstall:" に属しているため、バンドル jcrinstall: に設定 pid= を使用することはできません
解決策
- http://<host>:<port>/system/console/configMgr の設定ページに移動し、コンポーネントを選択します。
- 下のスナップショットにあるように、「バインドを解除する」をクリックすることにより、既存の設定をリンクを解除します。
- 確認ダイアログボックスにある「OK」をクリックします。
- 設定を編集して保存します。
ベストプラクティス
この問題が継続配信プロセスで再発生するのを防ぐために、自動デプロイメントスクリプトは次の事項の処理をおこないます:
- 必ずリポジトリインストールし、felix コンソールからの直接インストールとミックスマッチしないでください。
- 新しいバージョンのバンドルは常に追加され、古いバージョンのバンドルは削除されません。
- パッケージフィルターは jar パスを含み(/apps/<appname>/install/<bundleNamewithversion>.jar)親フォルダー /apps/<appname>/install
は記載しないでください。 - 新しいバンドルをデプロイする前に古いバンドルを削除する必要があるシナリオがある場合は、バンドルを削除してから新しいバンドルをインストールする前に、以下のアクションを実行してください
- 設定のバインドを解除します。
- http://<host>:<port>/system/console/bundles でパッケージを更新します。
注意:
この問題に関してご質問やご不明な点などがございましたら、フォーラム設定 pid を使用できないことに対処する記事のでディスカッションに参加してください。
追加情報
バンドルが最初にインストールされると、設定が現在の場所にバインドされます。古いバージョンをアンインストールし、新しいバージョンをインストールしてバンドルを更新すると、新しいインストールの場所も新しくなり、設定を使用できなくなります。