L’enregistrement du fragment de document échoue avec l’erreur de limite d’opérateur XPath dans AEM Forms 6.5.
Dans Adobe Experience Manager Forms 6.5, l’enregistrement d’un fragment de document échoue lorsque l’expression XPath générée dépasse la limite d’opérateurs par défaut de JVM. Pour résoudre ce problème, corrigez la limite d’opérateur XPath qui bloque l’opération d’enregistrement du fragment de document.
Description description
Environnement
Adobe Experience Manager (AEM) Forms 6.5 (toutes les plateformes)
Symptômes
-
Lors de la création et de l’enregistrement d’un fragment de document dans AEM Forms, l’erreur suivante apparaît dans l’interface utilisateur :
Échec de la création de texte
[objet] -
Le journal du serveur contient l’erreur suivante :
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'. -
L’erreur se produit lorsque l’expression XPath générée pour le fragment de document dépasse la limite d’opérateur par défaut de JVM.
Cause
Pour des raisons de sécurité, la JVM applique une limite par défaut de 100 opérateurs dans les expressions XPath. Le processus de création de fragment de document génère une expression avec 101 opérateurs, ce qui dépasse cette limite et provoque l’erreur.
Résolution resolution
Suivez les étapes ci-dessous pour résoudre le problème :
-
Arrêtez le serveur AEM Forms/JBoss.
-
Sauvegardez la configuration de démarrage actuelle de JBoss.
-
Ajoutez les options JVM suivantes à la configuration de démarrage :
-Djdk.xml.xpathExprGrpLimit=100-Djdk.xml.xpathExprOpLimit=2000
Pour la configuration par lots de Windows, ajoutez les options au fichier approprié, par exemple
domain.conf.batpour le mode domaine oustandalone.conf.batpour le mode autonome :code language-none set "JAVA_OPTS=%JAVA_OPTS% -Djdk.xml.xpathExprGrpLimit=100 -Djdk.xml.xpathExprOpLimit=2000"Si
JAVA_OPTSest défini en externe, assurez-vous que ces paramètres sont ajoutés à la valeur effective utilisée par le service ou la commande de démarrage. -
Redémarrez le serveur AEM Forms/JBoss.
-
Vérifiez dans la sortie de démarrage que
jdk.xml.xpathExprOpLimit=2000est appliqué. -
Essayez de créer et d’enregistrer à nouveau le fragment de document pour confirmer que le problème est résolu.