TagManager.resolve retorna nulo no AEM as a Cloud Service Publisher

No ambiente do AEM as a Cloud Service Publisher, as chamadas para TagManager.resolve retornam nulo, mas a mesma lógica funciona corretamente no AEM 6.5 ou no ambiente do Autor. O sistema usa como padrão /etc/tags para resolução de marcas em vez do caminho padrão do AEMaaCS: /content/cq:tags. Para corrigir isso, atualize a configuração do OSGi para desabilitar o suporte herdado e remover o nó /etc/tags dos ambientes do Autor e do Editor.

Descrição description

Ambiente

Adobe Experience Manager (AEM) as a Cloud Service - Sites

Problema/Sintomas

  • O código do servlet usa:

    code language-none
    TagManager tagManager = request.getResourceResolver().adaptTo(TagManager.class);    Tag tag = tagManager.resolve("/content/cq:tags/...");
    

    O TagManager é resolvido como nulo somente no Editor, não no Autor.

  • O arquivo de log mostra:

    com.day.cq.tagging.impl.JcrTagManagerFactoryImpl Using /etc/tags as root path for tags

    Isso indica que o sistema está padronizando como /etc/tags.

  • As marcas existem em /etc/tags no Editor, enquanto /content/cq:tags está configurado corretamente no Editor.

Causa raiz

A presença de tags em /etc/tags no Publicador faz com que o AEM use o caminho /etc/tags herdado como padrão.

Resolução resolution

Para resolver o problema:

  1. Defina a propriedade de configuração OSGi legacySupport.enabled.name como false para o serviço com.day.cq.tagging.impl.JcrTagManagerFactoryImpl(Serviço de Marcação CQ de Dias). Isso garante que o AEM use /content/cq:tags como o caminho raiz.

  2. Verifique se o nó /etc/tags está ausente ou vazio nos ambientes do Autor e do Publicador.

  3. Para limpar o Editor:

    1. Crie um pacote de conteúdo em branco que inclua /etc/tags, mas sem nós filhos.
    2. Instale o pacote no Author e replique-o no Publisher. Isso removerá /etc/tags de ambos os ambientes.
  4. Como alternativa, exclua o nó /etc/tags diretamente do Editor, enviando uma solicitação de ação Excluir da interface de Distribuição de Autores.

Como resultado:

  • Os logs do AEM devem mostrar: com.day.cq.tagging.impl.JcrTagManagerFactoryImpl Using /content/cq:tags as root path for tags
  • TagManager.resolve usará as marcas corretamente em /content/cq:tags.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f