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 tags

    Dies zeigt an, dass das System standardmäßig auf /etc/tags eingestellt ist.

  • Tags sind unter /etc/tags auf dem Herausgeber vorhanden, während /content/cq:tags auf 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:

  1. Legen Sie die OSGi-Konfigurationseigenschaft legacySupport.enabled.name für den Service com.day.cq.tagging.impl.JcrTagManagerFactoryImplDay CQ Tagging Service) auf false . Dadurch wird sichergestellt, dass AEM /content/cq:tags als Stammpfad verwendet.

  2. Stellen Sie sicher, dass der /etc/tags Knoten sowohl in der Autoren- als auch in der Veröffentlichungsumgebung fehlt oder leer ist.

  3. Bereinigen des Herausgebers:

    1. Erstellen Sie ein leeres Inhaltspaket, das /etc/tags, aber keine untergeordneten Knoten enthält.
    2. Installieren Sie das Paket auf der Autoreninstanz und replizieren Sie es zum Publisher. Dadurch werden /etc/tags aus beiden Umgebungen entfernt.
  4. Alternativ können Sie den /etc/tags Knoten 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.resolve verwendet Tags korrekt bei /content/cq:tags.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f