AEMの出力サービス OSGi API でフラグメントが解決されない

Adobe Experience Manager Forms as a Cloud Service(AEMFaaCS)では、Output サービス OSGi API の使用時に、XDP ファイル内のフラグメント参照が解決されません。 この問題は、コンテンツルートの設定が正しくないか、フラグメント参照が正しくないために、相対パスが正しく解釈されない場合に発生します。 この問題を解決するには、コンテンツルートを設定し、正しい相対パスを使用します。

説明 description

環境

  • 製品: Adobe Experience Manager Forms as a Cloud Service(AEMFaaCS)
  • インスタンス: 開発

問題/症状

  • javax.jcr.PathNotFoundExceptionjavax.jcr.RepositoryException などのエラーがログに表示されます。
  • 相対参照を使用して XDP ファイルに埋め込まれたフラグメントパスが、期待どおりに解決されない。

解決策 resolution

次の手順に従って、AEM Forms Output サービスでのフラグメント解決の問題を解決します。

  1. contentRoot パラメーターを、メイン XDP とフラグメントフォルダーの両方を含む最上位ディレクトリに設定します。 例えば、メイン XDP フォルダーが /content/dam/formsanddocuments/main-xdps で、フラグメントが /content/dam/formsanddocuments/fragments の下にある場合は、コンテンツルートを /content/dam/formsanddocuments/ に設定します。  ​ フラグメントを使用した PDF ドキュメントの生成 ​ を参照してください。
  2. メイン XDP ファイルで、手順 1 で設定したコンテンツルートに基づいてフラグメントの相対パスを指定します。 例えば、バーコードフラグメントが /content/dam/formsanddocuments/fragments/barcode.xdp にある場合は、メイン XDP の参照パスとして ./fragments/barcode.xdp を使用します。
  3. /content/dam/formsanddocuments/fragments/xdp/barcode.xdp のような絶対パスは使用しないでください。
  4. メインの XDP の場所(例:../../barcode.xdp)から上方に移動するパスを参照しないでください。
  5. outputService.generatePDFOutput(templateName, data, options) を呼び出す場合は、メインの XDP ファイルの完全パス(例:crx:///content/dam/formsanddocuments/af-personal/main-xdps/CM201-0822.xdp)をテンプレート名として指定します。
  6. これらの調整を実装した後、すべてのシナリオをテストして、様々な XDP やフラグメントで一貫した動作を確保します。

関連資料

AEM ユーザーガイドの Output サービス ​

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f