Die Komponentenverschiebung schlägt in Adobe Experience Manager fehl, wenn der Trigger für große Container JSON-Antworten aufteilt
In diesem Artikel wird erläutert, warum das Verschieben von Komponenten innerhalb einer Seite in Adobe Experience Manager (AEM) fehlschlägt, wenn die Seite eine große Anzahl von Inhaltsknoten enthält, und bietet eine temporäre Problemumgehung.
Beschreibung description
Bei Verwendung von AEM funktioniert das Verschieben einer Komponente innerhalb einer Seite, die eine große Anzahl von Inhaltsknoten enthält, nicht wie erwartet. Dieses Problem tritt auf, wenn die Anzahl der Knoten in einem Container das konfigurierte Limit für JSON-Ergebnisse im Apache Sling GET Servlet (DefaultGetServlet) überschreitet. Standardmäßig ist dieser Grenzwert auf 1.000 Knoten festgelegt. Wenn das Limit überschritten wird, gibt eine Anfrage an den .infinity.json-Endpunkt des Containers eine HTTP 300-Antwort mit Verweisen auf mehrere aufgeteilte JSON-Dateien anstelle einer einzigen JSON-Antwort zurück. Die Authoring-Benutzeroberfläche von AEM verarbeitet diese Aufspaltungsantwort nicht korrekt, was dazu führt, dass der Vorgang zum Verschieben von Komponenten im Hintergrund fehlschlägt.
Umgebung
- Adobe Experience Manager (alle Versionen)
Symptome
- Der Versuch, eine Komponente innerhalb einer Seite mit einer großen Anzahl von Knoten zu verschieben, hat keine Auswirkungen.
- Die Anfrage an
/container.infinity.jsongibt eine HTTP 300-Antwort mit Verweisen auf mehrere aufgeteilte JSON-Dateien zurück, z. B.: /content/.../jcr:content/root/container.2.json/content/.../jcr:content/root/container.1.json/content/.../jcr:content/root/container.0.json
Ursache
Die DefaultGetServlet erzwingt eine Begrenzung der Anzahl der Knoten, die in einer einzelnen JSON-Antwort zurückgegeben werden. Wenn diese Grenze überschritten wird, gibt das Servlet eine Aufspaltungsantwort zurück, die derzeit nicht vom Authoring-Workflow von AEM während Komponentenverschiebungsvorgängen verarbeitet wird.
Lösung resolution
Gehen Sie wie folgt vor, um das Problem zu beheben:
- Melden Sie sich bei der AEM Web Console-Konfiguration unter
/system/console/configMgran. - Suchen Sie die Konfiguration für Apache Sling
GETServlet (org.apache.sling.servlets.get.DefaultGetServlet). - Erhöhen Sie den Wert von
json.maximumresultsauf eine Zahl, die höher ist als die Gesamtzahl der Knoten in Ihrem größten Container (beispielsweise: von 1.000 auf 2.000 erhöhen). - Speichern Sie die Konfiguration.
- Wiederholen Sie den Vorgang zum Verschieben der Komponente, um zu überprüfen, ob er jetzt erfolgreich abgeschlossen wurde.
- Überwachen Sie zukünftige AEM Sites-Versionshinweise, um Updates zu einer dauerhaften Lösung für dieses Problem zu erhalten.