TagManager.resolve gibt null für AEM as a Cloud Service Publisher zurück
In der AEM as a Cloud Service Publisher-Umgebung geben Aufrufe von TagManager.resolve null zurück, aber dieselbe Logik funktioniert ordnungsgemäß in AEM 6.5 oder der Authoring-Umgebung. Das System verwendet standardmäßig /etc/tags für die Tag-Auflösung anstelle des standardmäßigen AEMaaCS-Pfads: /content/cq:tags. Um dies zu beheben, aktualisieren Sie die OSGi-Konfiguration, um die alte Unterstützung zu deaktivieren und den /etc/tags Knoten aus der Autoren- und Veröffentlichungsumgebung zu entfernen.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM) as a Cloud Service - Sites
Problem/Symptome
-
Servlet-Code verwendet:
code language-none TagManager tagManager = request.getResourceResolver().adaptTo(TagManager.class); Tag tag = tagManager.resolve("/content/cq:tags/...");TagManager wird nur auf dem Herausgeber als null aufgelöst, nicht auf der Autoreninstanz.
-
Die Protokolldatei zeigt:
com.day.cq.tagging.impl.JcrTagManagerFactoryImpl Using /etc/tags as root path for tagsDies zeigt an, dass das System standardmäßig auf
/etc/tagseingestellt ist. -
Tags sind unter
/etc/tagsauf dem Herausgeber vorhanden, während/content/cq:tagsauf der Autoreninstanz ordnungsgemäß konfiguriert ist.
Grundursache
Wenn Tags unter /etc/tags auf dem Herausgeber vorhanden sind, verwendet AEM standardmäßig den Pfad der veralteten /etc/tags.
Auflösung resolution
Beheben des Problems:
-
Legen Sie die OSGi-Konfigurationseigenschaft
legacySupport.enabled.namefür den Servicecom.day.cq.tagging.impl.JcrTagManagerFactoryImplDay CQ Tagging Service) auf false . Dadurch wird sichergestellt, dass AEM/content/cq:tagsals Stammpfad verwendet. -
Stellen Sie sicher, dass der
/etc/tagsKnoten sowohl in der Autoren- als auch in der Veröffentlichungsumgebung fehlt oder leer ist. -
Bereinigen des Herausgebers:
- Erstellen Sie ein leeres Inhaltspaket, das
/etc/tags, aber keine untergeordneten Knoten enthält. - Installieren Sie das Paket auf der Autoreninstanz und replizieren Sie es zum Publisher. Dadurch werden
/etc/tagsaus beiden Umgebungen entfernt.
- Erstellen Sie ein leeres Inhaltspaket, das
-
Alternativ können Sie den
/etc/tagsKnoten direkt aus dem Publisher löschen, indem Sie eine Löschen-Aktionsanfrage von der Autoren-Verteilungs-Benutzeroberfläche senden.
Das Ergebnis:
- AEM-Protokolle sollten Folgendes enthalten:
com.day.cq.tagging.impl.JcrTagManagerFactoryImpl Using /content/cq:tags as root path for tags TagManager.resolveverwendet Tags korrekt bei/content/cq:tags.