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 :

  1. Arrêtez le serveur AEM Forms/JBoss.

  2. Sauvegardez la configuration de démarrage actuelle de JBoss.

  3. Ajoutez les options JVM suivantes à la configuration de démarrage :

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

    Pour la configuration par lots de Windows, ajoutez les options au fichier approprié, par exemple domain.conf.bat pour le mode domaine ou standalone.conf.bat pour le mode autonome :

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

    Si JAVA_OPTS est 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.

  4. Redémarrez le serveur AEM Forms/JBoss.

  5. Vérifiez dans la sortie de démarrage que jdk.xml.xpathExprOpLimit=2000 est appliqué.

  6. Essayez de créer et d’enregistrer à nouveau le fragment de document pour confirmer que le problème est résolu.

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