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.PathNotFoundException や javax.jcr.RepositoryException などのエラーがログに表示されます。
- 相対参照を使用して XDP ファイルに埋め込まれたフラグメントパスが、期待どおりに解決されない。
解決策 resolution
次の手順に従って、AEM Forms Output サービスでのフラグメント解決の問題を解決します。
contentRootパラメーターを、メイン XDP とフラグメントフォルダーの両方を含む最上位ディレクトリに設定します。 例えば、メイン XDP フォルダーが/content/dam/formsanddocuments/main-xdpsで、フラグメントが/content/dam/formsanddocuments/fragmentsの下にある場合は、コンテンツルートを/content/dam/formsanddocuments/に設定します。 フラグメントを使用した PDF ドキュメントの生成 を参照してください。- メイン XDP ファイルで、手順 1 で設定したコンテンツルートに基づいてフラグメントの相対パスを指定します。 例えば、バーコードフラグメントが
/content/dam/formsanddocuments/fragments/barcode.xdpにある場合は、メイン XDP の参照パスとして./fragments/barcode.xdpを使用します。 /content/dam/formsanddocuments/fragments/xdp/barcode.xdpのような絶対パスは使用しないでください。- メインの XDP の場所(例:
../../barcode.xdp)から上方に移動するパスを参照しないでください。 outputService.generatePDFOutput(templateName, data, options)を呼び出す場合は、メインの XDP ファイルの完全パス(例:crx:///content/dam/formsanddocuments/af-personal/main-xdps/CM201-0822.xdp)をテンプレート名として指定します。- これらの調整を実装した後、すべてのシナリオをテストして、様々な XDP やフラグメントで一貫した動作を確保します。
3d58f420-19b5-47a0-a122-5c9dab55ec7f