由于缺少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/IOExceptionWithCauseClassNotFoundException: 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包导入而导致的部署失败,请执行以下步骤:
-
编辑受影响包的“导入包”部分,以显式导入所有必需的
org.apache.tika.*包,如org.apache.tika.io。 -
示例(在
bnd.bnd或等效项中):Import-Package: org.apache.tika.io, org.apache.tika.* -
确保该捆绑包不会嵌入其自身版本的Apache Tika。 依赖平台提供的Tika捆绑包以避免版本冲突。
-
通过Cloud Manager管道提交并部署更新后的捆绑包。
-
在AEM Web控制台中,验证该自定义捆绑包是否作为
org.apache.tika.core的导入捆绑包列出。 -
确认日志中没有Tika类的
NoClassDefFoundError或ClassNotFoundException。 -
验证PDF提取和相关服务是否启动,并且没有OSGi Framework错误。