AEM Forms 6.5でXPath演算子制限エラーが発生し、ドキュメントフラグメントの保存が失敗する
Adobe Experience Manager Forms 6.5では、生成されたXPath式がJVMのデフォルトの演算子制限を超えると、ドキュメントフラグメントの保存が失敗します。 この問題を修正するには、ドキュメントフラグメントの保存操作をブロックするXPath演算子制限に対処します。
説明 description
環境
Adobe Experience Manager(AEM)Forms 6.5 (すべてのプラットフォーム)
症状
-
AEM Formsでドキュメントフラグメントを作成して保存すると、UIに次のエラーが表示されます。
テキストの作成に失敗しました
[オブジェクト オブジェクト オブジェクト] -
サーバーログに次のエラーが含まれています。
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'. -
このエラーは、ドキュメントフラグメントの生成されたXPath式が、JVMのデフォルトの演算子制限を超えた場合に発生します。
原因
JVMでは、セキュリティ上の理由から、XPath式でデフォルトの100個の演算子が適用されます。 ドキュメントフラグメント作成プロセスは、101個の演算子を含む式を生成します。この演算子は、この制限を超えており、エラーが発生します。
解決策 resolution
問題を解決するには、次の手順に従います。
-
AEM Forms/JBoss サーバーを停止します。
-
現在のJBoss起動設定をバックアップします。
-
起動設定に次のJVM オプションを追加します。
-Djdk.xml.xpathExprGrpLimit=100-Djdk.xml.xpathExprOpLimit=2000
Windows バッチ設定の場合は、適切なファイルにオプションを追加します。例えば、ドメイン モードの場合は
domain.conf.bat、スタンドアロン モードの場合はstandalone.conf.batなどです。code language-none set "JAVA_OPTS=%JAVA_OPTS% -Djdk.xml.xpathExprGrpLimit=100 -Djdk.xml.xpathExprOpLimit=2000"JAVA_OPTSが外部で定義されている場合は、これらのパラメーターがサービスまたは起動コマンドで使用される有効な値に追加されていることを確認します。 -
AEM Forms/JBoss サーバーを再起動します。
-
起動出力から、
jdk.xml.xpathExprOpLimit=2000が適用されていることを確認します。 -
ドキュメントフラグメントを再度作成して保存し、問題が解決されていることを確認します。