Apache Tika パッケージのインポートが欠落しているため、AEM Cloud Managerのデプロイメントが失敗する

この記事では、カスタムアプリケーションバンドルにApache Tika パッケージのインポートが見つからないことが原因で発生する、Adobe Experience Manager Cloud Manager環境でのデプロイメントパイプラインのエラーに対処する方法について説明します。

説明 description

環境

  • Adobe Experience Manager(AEM)as a Cloud Service
  • Cloud Manager

問題/症状

  • デプロイメントステップ中に、QA環境でデプロイメントパイプラインが失敗します。

  • 以前のすべてのパイプラインステップ(ビルド、コード品質、画像ビルド、トランスフォームジョブ、インデックス更新)が正常に完了しました。

  • デプロイメントが失敗し、コンテナの準備ができていないことを示すエラーが表示されます。

  • AEMの公開ログには、PDFの抽出機能に関連するOSGi Frameworkの繰り返しエラーが表示されます。次のようなエラーが発生します。

    • NoClassDefFoundError: org/apache/tika/io/IOExceptionWithCause
    • ClassNotFoundException: org.apache.tika.io.IOExceptionWithCause not found
  • プラットフォームが提供するApache Tika バンドル (org.apache.tika.core、org.apache.tika.parsers)が存在し、アクティブです。

  • カスタムアプリケーションバンドルは、必要なorg.apache.tika.* パッケージをインポートしないため、Tika クラスを参照する際にクラスの読み込みが失敗します。

  • この問題は、影響を受ける環境のすべてのパイプライン実行で再現できます。

原因

カスタムアプリケーションバンドルが必要なApache Tika パッケージをインポートしないため、デプロイメントパイプラインが失敗し、サービスの起動時にクラスロードエラーが発生します。

解決策 resolution

Apache Tika パッケージの読み込みが欠落したことによるデプロイメントエラーを修正するには、次の手順に従います。

  1. 影響を受けるバンドルの「パッケージをインポート」セクションを編集して、org.apache.tika.ioなど、必要なすべてのorg.apache.tika.* パッケージを明示的にインポートします。

  2. 例(bnd.bndまたは同等の場合):

    Import-Package: org.apache.tika.io, org.apache.tika.*

  3. バンドルに独自のバージョンのApache Tikaが埋め込まれていないことを確認します。 バージョンの競合を回避するには、プラットフォームが提供するTika バンドルを利用します。

  4. 更新されたバンドルをコミットし、Cloud Manager パイプラインを介してデプロイします。

  5. AEM Web コンソールで、カスタムバンドルがorg.apache.tika.coreのインポートバンドルとしてリストされていることを確認します。

  6. Tika クラスのNoClassDefFoundErrorまたはClassNotFoundExceptionがログに表示されないことを確認します。

  7. PDFの抽出と関連サービスが、OSGi Framework エラーなしで開始されることを検証します。

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