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:
-
Beenden Sie den AEM Forms/JBoss-Server.
-
Sichern Sie die aktuelle JBoss-Startkonfiguration.
-
Fügen Sie die folgenden JVM-Optionen zur Startkonfiguration hinzu:
-Djdk.xml.xpathExprGrpLimit=100-Djdk.xml.xpathExprOpLimit=2000
Fügen Sie bei der Windows-Batch-Konfiguration die Optionen der entsprechenden Datei hinzu, z. B.
domain.conf.batfür den Domain-Modus oderstandalone.conf.batfür den eigenständigen Modus:code language-none set "JAVA_OPTS=%JAVA_OPTS% -Djdk.xml.xpathExprGrpLimit=100 -Djdk.xml.xpathExprOpLimit=2000"Wenn
JAVA_OPTSextern definiert ist, stellen Sie sicher, dass diese Parameter an den effektiven Wert angehängt werden, der vom Dienst oder Startbefehl verwendet wird. -
Starten Sie den AEM Forms-/JBoss-Server neu.
-
Überprüfen Sie in der Startausgabe, ob
jdk.xml.xpathExprOpLimit=2000angewendet wurde. -
Versuchen Sie erneut, das Dokumentfragment zu erstellen und zu speichern, um zu bestätigen, dass das Problem behoben ist.