Problema
Mentre si implementa la nuova versione del jar osgi, le configurazioni dei servizi/componente sono legate alla vecchia versione del jar invece che a quella nuova.
Sintomi
Nel file di log visualizzi uno dei seguenti messaggi:
- *ERROR* [OsgiInstallerImpl] org.apache.felix.scr Cannot use configuration pid= for bundle jcrinstall: because it belongs to bundle jcrinstall:"
Soluzione
- Vai alla seguente pagina di configurazione http://<host>:<port>/system/console/configMgr e seleziona il componente.
- Scollega la configurazione esistente facendo clic su Separa come mostrato nell'istantanea qui sotto.
- Fai clic su Ok nella finestra di dialogo di conferma.
- Modifica e salva la configurazione.
Procedura consigliata
Per evitare che questo problema si ripresenti nel processo di recapito continuo, lo script di distribuzione automatica si occupa delle seguenti cose:
- Installa sempre dall'archivio e non mescolare con l'installazione direttamente dalla console felix.
- I bundle della nuova versione vengono aggiunti sempre e i bundle della vecchia versione non vengono cancellati.
- Il filtro del pacchetto dovrebbe includere il percorso jar (/apps/<appname>/install/<bundleNamewithversion>.jar) e non menzionare la cartella padre /apps/<appname>/install
- Se c'è uno scenario in cui il vecchio bundle deve essere cancellato prima di implementare un nuovo bundle, assicurati che dopo aver cancellato il bundle e prima di installare un nuovo bundle, si eseguano le seguenti azioni
- Separa la configurazione.
- Aggiorna i pacchetti su http://<host>:<port>/system/console/bundles.
Se hai domande o dubbi su questo problema, unisciti alla discussione sui forum Articolo su Impossibile utilizzare la configurazione pid.
Informazioni aggiuntive
Quando il bundle viene installato per la prima volta, la configurazione viene unita alla posizione corrente. Quando aggiorni un bundle disinstallando la vecchia versione e poi installando la nuova versione, la nuova installazione ha una nuova posizione diversa di bundle e quindi la configurazione non può essere usata.