TagManager.resolve returnerar null i AEM as a Cloud Service Publisher

I AEM as a Cloud Service Publisher-miljö returnerar anrop till TagManager.resolve null, men samma logik fungerar korrekt i AEM 6.5 eller i författarmiljön. Som standard är systemet /etc/tags för taggupplösning i stället för standardsökvägen för AEMaaCS: /content/cq:tags. Om du vill åtgärda det här uppdaterar du OSGi-konfigurationen så att äldre stöd inaktiveras och tar bort noden /etc/tags från både redigerings- och utgivarmiljöer.

Beskrivning description

Miljö

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

Problem/symtom

  • Tjänstkoden använder:

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

    TagManager tolkas endast som null i Publisher, inte på författare.

  • Loggfilen visar:

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

    Detta anger att systemet har standardvärdet /etc/tags.

  • Taggar finns under /etc/tags i utgivaren, medan /content/cq:tags är korrekt konfigurerat på författaren.

Rotorsak

Om det finns taggar under /etc/tags i utgivaren används den äldre sökvägen /etc/tags som standard i AEM.

Upplösning resolution

Så här löser du problemet:

  1. Ställ in OSGi-konfigurationsegenskapen legacySupport.enabled.name på false för tjänsten com.day.cq.tagging.impl.JcrTagManagerFactoryImpl(Day CQ Tagging Service). Detta garanterar att AEM använder /content/cq:tags som rotsökväg.

  2. Kontrollera att noden /etc/tags antingen saknas eller är tom i både redigerings- och utgivarmiljöer.

  3. Så här rensar du utgivaren:

    1. Skapa ett tomt innehållspaket som innehåller /etc/tags men utan underordnade noder.
    2. Installera paketet på Författare och replikera det till Utgivare. Detta tar bort /etc/tags från båda miljöerna.
  4. Du kan också ta bort noden /etc/tags direkt från Publisher genom att skicka en Ta bort-åtgärdsbegäran från gränssnittet för författardistribution.

Resultatet blir:

  • AEM-loggar bör visa: com.day.cq.tagging.impl.JcrTagManagerFactoryImpl Using /content/cq:tags as root path for tags
  • TagManager.resolve kommer att använda taggar på /content/cq:tags korrekt.
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f