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 tagsCela indique que le système est défini par défaut sur
/etc/tags. -
Les balises existent sous
/etc/tagsdans l’éditeur, tandis que/content/cq:tagsest 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 :
-
Définissez la propriété de configuration OSGi
legacySupport.enabled.namesur false pour le servicecom.day.cq.tagging.impl.JcrTagManagerFactoryImpl(Service de balisage Day CQ). Cela permet à AEM d’utiliser/content/cq:tagscomme chemin racine. -
Assurez-vous que le nœud
/etc/tagsest manquant ou vide dans les environnements de création et de publication. -
Pour nettoyer l'éditeur :
- Créez un package de contenu vierge qui comprend des
/etc/tags, mais sans nœuds enfants. - Installez le package sur l’instance de création et répliquez-le dans l’éditeur. Cela supprimera le
/etc/tagsdes deux environnements.
- Créez un package de contenu vierge qui comprend des
-
Vous pouvez également supprimer le nœud
/etc/tagsdirectement 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.resolveutilisera correctement les balises à l’/content/cq:tags.