Java 17または21のAEM 6.5 LTSで空白の文字のプレビューを解決する

この記事では、AEM 6.5 LTSに移行し、Java 17または21で実行した後、AEM Formsのレタープレビューが空白で表示される問題を解決する方法について説明します。 このソリューションには、必要なモジュールアクセスを許可するようにJVM オプションを更新することが含まれます。

説明 description

環境

  • Adobe Experience Manager(AEM) 6.5 LTS
  • Java 17またはJava 21

問題/症状

通信を作成インターフェイスでレターテンプレートをプレビューすると、画面が空白になります。 この問題は、Formsまたはドキュメントのプレビューには影響せず、Java 8または11には存在しませんでした。 サーバーログには、java.lang.reflect.InaccessibleObjectException: Unable to make field private transient java.util.NavigableMap java.util.TreeSet.m accessible: module java.base does not "opens java.util" to unnamed moduleなどのエラーが表示される場合があります。

原因

Java 17以降、強力なモジュールのカプセル化により、Correspondence Management モジュールで必要なリフレクティブ アクセスが制限され、空白のプレビューが表示されます。

解決策 resolution

空白のレタープレビューの問題を修正するには、次の手順に従います。

  1. AEM Windows サービスのJVM オプションを設定するスクリプトまたはコンフィギュレーションファイルを探します。 Windows インストールの場合、これは通常、AEM インストールディレクトリのinstsrv.bat ファイルです。

  2. ファイルを開き、JVM オプションを設定する行を見つけます(多くの場合、set jvm_options=で始まります)。 オプションは通常#文字で区切られます。

  3. 次のJVM引数をオプションリストに追加します:--add-opens=java.base/java.util=ALL-UNNAMED

    • 例:set jvm_options=-Xmx2048m#--add-opens=java.base/java.util=ALL-UNNAMED#
  4. ファイルに変更を保存します。

  5. 更新されたJVM オプションを適用するには、AEM Windows サービスを再インストールします。

    1. 管理者コマンドプロンプトを開き、サービススクリプトを含むディレクトリに移動します。
    2. 次を使用してAEM サービスを停止します:net stop [ YourAEMServiceName]
    3. サービス instsrv.bat -uninstall [ YourAEMServiceName]をアンインストールします
    4. サービス instsrv.bat [ YourAEMServiceName]を再インストールします
    5. サービスを開始:net start [ YourAEMServiceName]
  6. サービスが再起動したら、AEMにログインし、「通信を作成」インターフェイスでレターのプレビューを試みます。 これで、文字が正しくレンダリングされるようになりました。

  7. (推奨)すべての機能との互換性を確保するために、Adobe 6.5 LTSの推奨されるJava 21 --add-opens オプションの完全なセットについて、AEMの公式ドキュメントを確認してください。

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