Problema

Ao implantar a nova versão do jar do OSGi, as configurações de serviços/componentes são vinculadas à versão antiga do jar, ao invés da nova.   

Sintomas

Uma das seguintes mensagens é exibida no arquivo de log:

  • *ERRO* [OsgiInstallerImpl] org.apache.felix.scr Não é possível usar a configuração pid= para o pacote jcrinstall:, já que este pertence ao pacote jcrinstall:"

Solução

  1. Vá para a página de configuração em http://<host>:<port>/system/console/configMgr e selecione seu componente.
  2. Desvincule a configuração existente clicando em "desvincular", conforme mostrado no instantâneo abaixo.
  3. Clique em OK na caixa de diálogo de confirmação.
  4. Edite e salve a configuração.
Unbind

Prática recomendada

Para evitar que esse problema ocorra novamente em seu processo de entrega contínua, o script de implantação automatizada cuida dos seguintes itens:

  • Sempre instale a partir do repositório e não misture com a instalação diretamente do console do Felix.
  • Pacotes com a versão nova sempre são adicionados e pacotes com a versão antiga não são excluídos.
  • O filtro de pacotes deve incluir o caminho do jar (/apps/<appname>/install/<bundleNamewithversion>.jar) e não mencionar a pasta pai/apps/<appname>/install
  • Se houver um cenário em que o pacote antigo precisa ser excluído antes de implantar um novo pacote, certifique-se de excluir o pacote e, antes de instalar o novo, executar as ações abaixo
    1. Desvincule a configuração.
    2. Atualize os pacotes em http://<host>:<port>/system/console/bundles.

Observação:

Se você ainda tem dúvidas sobre esse assunto, participe da discussão nos fóruns: Artigo para endereço sobre não conseguir usar a configuração pid.

Informações adicionais

Quando o pacote é instalado pela primeira vez, a configuração fica vinculada à localização atual. Ao atualizar um pacote desinstalando a versão antiga e instalando a versão nova, a nova instalação tem um novo local de pacote diferente e, portanto, a configuração não pode ser usada.

Esta obra está licenciada sob uma licença não adaptada da Creative Commons Attribution-Noncommercial-Share Alike 3.0  As publicações do Twitter™ e do Facebook não são cobertas pelos termos do Creative Commons.

Avisos legais   |   Política de privacidade online