由于缺少Apache Tika包导入,AEM Cloud Manager部署失败

本文介绍了如何在Adobe Experience Manager Cloud Manager环境中解决由于自定义应用程序捆绑包中缺少Apache Tika包导入而导致的部署管道故障。

描述 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.coreorg.apache.tika.parsers)存在且处于活动状态。

  • 自定义应用程序包未导入所需的org.apache.tika.*包,导致引用Tika类时类加载失败。

  • 在受影响环境的每次管道执行中,该问题都会重现。

原因

部署管道失败,因为自定义应用程序捆绑包未导入所需的Apache Tika包,导致在服务启动期间出现类加载错误。

解决方法 resolution

要修复因缺少Apache Tika包导入而导致的部署失败,请执行以下步骤:

  1. 编辑受影响包的“导入包”部分,以显式导入所有必需的org.apache.tika.*包,如org.apache.tika.io

  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类的NoClassDefFoundErrorClassNotFoundException

  7. 验证PDF提取和相关服务是否启动,并且没有OSGi Framework错误。

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