Fehler beim Speichern des Dokumentfragments mit dem XPath-Operator-Limit in AEM Forms 6.5

In Adobe Experience Manager Forms 6.5 schlägt das Speichern eines Dokumentfragments fehl, wenn der generierte XPath-Ausdruck das standardmäßige Operator-Limit von JVM überschreitet. Um dieses Problem zu beheben, beheben Sie das XPath-Operator-Limit, das den Speichervorgang für Dokumentfragmente blockiert.

Beschreibung description

Umgebung

Adobe Experience Manager (AEM) Forms 6.5 (alle Plattformen)

Symptome

  • Beim Erstellen und Speichern eines Dokumentfragments in AEM Forms wird in der Benutzeroberfläche der folgende Fehler angezeigt:

    Fehler bei der Texterstellung [ Objekt]

  • Das Serverprotokoll enthält den folgenden Fehler:

    javax.xml.xpath.XPathExpressionException: javax.xml.transform.TransformerException: JAXP0801002: the compiler encountered an XPath expression containing '101' operators that exceeds the '100' limit set by 'FEATURE_SECURE_PROCESSING'.

  • Der Fehler tritt auf, wenn der generierte XPath-Ausdruck für das Dokumentfragment das standardmäßige Operator-Limit von JVM überschreitet.

Ursache

Die JVM erzwingt aus Sicherheitsgründen eine Standardbegrenzung von 100 Operatoren in XPath-Ausdrücken. Der Erstellungsprozess von Dokumentfragmenten generiert einen Ausdruck mit 101 Operatoren, der dieses Limit überschreitet und den Fehler verursacht.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Beenden Sie den AEM Forms/JBoss-Server.

  2. Sichern Sie die aktuelle JBoss-Startkonfiguration.

  3. Fügen Sie die folgenden JVM-Optionen zur Startkonfiguration hinzu:

    1. -Djdk.xml.xpathExprGrpLimit=100
    2. -Djdk.xml.xpathExprOpLimit=2000

    Fügen Sie bei der Windows-Batch-Konfiguration die Optionen der entsprechenden Datei hinzu, z. B. domain.conf.bat für den Domain-Modus oder standalone.conf.bat für den eigenständigen Modus:

    code language-none
    set "JAVA_OPTS=%JAVA_OPTS% -Djdk.xml.xpathExprGrpLimit=100 -Djdk.xml.xpathExprOpLimit=2000"
    

    Wenn JAVA_OPTS extern definiert ist, stellen Sie sicher, dass diese Parameter an den effektiven Wert angehängt werden, der vom Dienst oder Startbefehl verwendet wird.

  4. Starten Sie den AEM Forms-/JBoss-Server neu.

  5. Überprüfen Sie in der Startausgabe, ob jdk.xml.xpathExprOpLimit=2000 angewendet wurde.

  6. Versuchen Sie erneut, das Dokumentfragment zu erstellen und zu speichern, um zu bestätigen, dass das Problem behoben ist.

recommendation-more-help
experience-cloud-kcs-help-kbarticles