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
空白のレタープレビューの問題を修正するには、次の手順に従います。
-
AEM Windows サービスのJVM オプションを設定するスクリプトまたはコンフィギュレーションファイルを探します。 Windows インストールの場合、これは通常、AEM インストールディレクトリの
instsrv.batファイルです。 -
ファイルを開き、JVM オプションを設定する行を見つけます(多くの場合、
set jvm_options=で始まります)。 オプションは通常#文字で区切られます。 -
次のJVM引数をオプションリストに追加します:
--add-opens=java.base/java.util=ALL-UNNAMED- 例:
set jvm_options=-Xmx2048m#--add-opens=java.base/java.util=ALL-UNNAMED#
- 例:
-
ファイルに変更を保存します。
-
更新されたJVM オプションを適用するには、AEM Windows サービスを再インストールします。
- 管理者コマンドプロンプトを開き、サービススクリプトを含むディレクトリに移動します。
- 次を使用してAEM サービスを停止します:
net stop [ YourAEMServiceName] - サービス
instsrv.bat -uninstall [ YourAEMServiceName]をアンインストールします - サービス
instsrv.bat [ YourAEMServiceName]を再インストールします - サービスを開始:
net start [ YourAEMServiceName]
-
サービスが再起動したら、AEMにログインし、「通信を作成」インターフェイスでレターのプレビューを試みます。 これで、文字が正しくレンダリングされるようになりました。
-
(推奨)すべての機能との互換性を確保するために、Adobe 6.5 LTSの推奨されるJava 21
--add-opensオプションの完全なセットについて、AEMの公式ドキュメントを確認してください。