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 tagsDetta anger att systemet har standardvärdet
/etc/tags. -
Taggar finns under
/etc/tagsi 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:
-
Ställ in OSGi-konfigurationsegenskapen
legacySupport.enabled.namepå false för tjänstencom.day.cq.tagging.impl.JcrTagManagerFactoryImpl(Day CQ Tagging Service). Detta garanterar att AEM använder/content/cq:tagssom rotsökväg. -
Kontrollera att noden
/etc/tagsantingen saknas eller är tom i både redigerings- och utgivarmiljöer. -
Så här rensar du utgivaren:
- Skapa ett tomt innehållspaket som innehåller
/etc/tagsmen utan underordnade noder. - Installera paketet på Författare och replikera det till Utgivare. Detta tar bort
/etc/tagsfrån båda miljöerna.
- Skapa ett tomt innehållspaket som innehåller
-
Du kan också ta bort noden
/etc/tagsdirekt 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.resolvekommer att använda taggar på/content/cq:tagskorrekt.