TagManager.resolve renvoie la valeur null sur AEM as a Cloud Service Publisher

Dans l’environnement d’AEM as a Cloud Service Publisher, les appels à TagManager.resolve renvoient la valeur null, mais la même logique fonctionne correctement dans AEM 6.5 ou l’environnement de création. Le système utilise par défaut la résolution de balise /etc/tags plutôt que le chemin d’accès AEMaaCS standard : /content/cq:tags. Pour corriger ce problème, mettez à jour la configuration OSGi pour désactiver la prise en charge héritée et supprimer le nœud /etc/tags des environnements de création et de publication.

Description description

Environnement

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

Problème/Symptômes

  • Le code du servlet utilise :

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

    TagManager est résolu comme nul uniquement sur l’éditeur et non sur l’auteur.

  • Le fichier journal affiche :

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

    Cela indique que le système est défini par défaut sur /etc/tags.

  • Les balises existent sous /etc/tags dans l’éditeur, tandis que /content/cq:tags est correctement configuré dans l’auteur.

Cause principale

La présence de balises sous /etc/tags sur l’éditeur entraîne l’utilisation par défaut du chemin d’accès au /etc/tags hérité par AEM.

Résolution resolution

Pour résoudre le problème :

  1. Définissez la propriété de configuration OSGi legacySupport.enabled.name sur false pour le service com.day.cq.tagging.impl.JcrTagManagerFactoryImpl(Service de balisage Day CQ). Cela permet à AEM d’utiliser /content/cq:tags comme chemin racine.

  2. Assurez-vous que le nœud /etc/tags est manquant ou vide dans les environnements de création et de publication.

  3. Pour nettoyer l'éditeur :

    1. Créez un package de contenu vierge qui comprend des /etc/tags, mais sans nœuds enfants.
    2. Installez le package sur l’instance de création et répliquez-le dans l’éditeur. Cela supprimera le /etc/tags des deux environnements.
  4. Vous pouvez également supprimer le nœud /etc/tags directement de Publisher en envoyant une demande d’action Supprimer à partir de l’interface utilisateur de distribution de création.

Par conséquent :

  • Les journaux AEM doivent afficher : com.day.cq.tagging.impl.JcrTagManagerFactoryImpl Using /content/cq:tags as root path for tags
  • TagManager.resolve utilisera correctement les balises à l’/content/cq:tags.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f