Problem
Während der Bereitstellung einer neuen Version einer „OSGi-Jar“ werden die Dienste / Komponentenkonfigurationen mit der alten Version des „Jar“ statt einer neuen Version verknüpft.
Symptome
Sie sehen eine der folgenden Meldungen in der Protokolldatei:
- *FEHLER* [OsgiInstallerImpl] org.apache.felix.scr. Die Konfiguration pid = für das Paket „jcrinstall:“ kann nicht verwendet werden, da es zum Paket „jcrinstall“ gehört.
Lösung
- Rufen Sie die Konfigurationsseite unter „http://<host>:<port>/system/console/configMgr“ auf und wählen Sie Ihre Komponente aus.
- Heben Sie die Verknüpfung der vorhandenen Konfiguration auf, indem Sie auf die Schaltfläche zum Aufheben der Bindung klicken, wie in der folgenden Momentaufnahme gezeigt.
- Klicken Sie im Bestätigungsdialogfeld auf „OK“.
- Bearbeiten und speichern Sie die Konfiguration.
Optimale Vorgehensweise
Um dieses Problem zu vermeiden, kümmert sich das automatische Bereitstellungsskript um Folgendes:
- Installieren Sie immer aus dem Repositorium und verwechseln Sie nicht „Zusammenfügen“ mit „Einfügen“ direkt von Felix-Konsole.
- Neue Versionsbündel werden immer hinzugefügt und alte Versionsbündel werden nicht gelöscht.
- Das Paket sollte den Jar-Pfad (/apps/<Anwendungsname>/install/<bundleNamewithversion>.jar) enthalten und den übergeordneten Ordner /apps/<Anwendungsname>/install nicht erwähnen
- Wenn es vorkommen muss, dass das alte Paket gelöscht werden muss, bevor ein neues Paket bereitgestellt wird, stellen Sie sicher, dass nach dem Löschen des Pakets und vor dem Installieren der neuen Pakets die folgenden Schritte ausgeführt werden:
- Entbinden Sie die Konfiguration erneut.
- Aktualisieren Sie die Pakete bei http://<host>:<port>/system/console/bundles
Wenn Sie Fragen zu diesem Problem haben, schließen Sie sich bitte der Diskussion Artikel zur Behebung der Konfigurations-PID.
Weitere Informationen
Wenn das Bundle zum ersten Mal installiert wird, wird die Konfiguration an den aktuellen Speicherort gebunden. Wenn Sie das Bundle durch Installieren der neuen Version aktualisieren, hat die neue Installation ein neues Bundle, und die Konfiguration kann nicht verwendet werden.