在AEMaaCS中,管道构建在可变内容安装步骤失败

在Adobe Experience Manager as a Cloud Service (AEMaaCS)中,由于XML解析错误,管道构建在可变内容安装步骤期间失败。 当.content.xml文件包含不正确的转义&字符时,会出现问题。 解析器引发错误声明;实体名称必须紧跟实体引用中的&。 要解决此问题,请替换无效的&字符并重新部署管道。

描述 description

环境

  • 产品: Adobe Experience Manager as a Cloud Service (AEMaaCS) — 站点
  • 实例: 开发

问题/症状

  • 在可变内容安装步骤期间,管道构建失败,并出现以下错误:
[ EventAdminAsyncThread #3]  org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher [ preview]  Message: Failed attempt (8/infinite) to import the distribution package PackageMessage(pubSlingId=3dcea89e-adc8-4bc9-99ce-01daa28559e6, reqType=ADD, pkgId=dstrpck-1744800882270-db48d737-080d-4cf9-b099-d8abf6e75086, pkgType=journal_filevault, pkgLength=7591, pubAgentName=preview, userId=replication-service, paths=[ /etc/packages/<custom><package>/<package><name>.zip] , deepPaths=[ ] , metadata={}) at offset=17225106 because of 'Error trying to extract package at path /etc/packages/<custom><package>/<package><name>.zip because of 'org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException: The entity name must immediately follow the '&' in the entity reference.'', the importer will retry later,_Stacktrace: org.apache.sling.distribution.common.DistributionException: Error trying to extract package at path /etc/packages/<custom><package>/<package><name>.zip because of 'org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException: The entity name must immediately follow the '&' in the entity reference.'_ at org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.handlePath(ContentPackageExtractor.java:93)_ at org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.handle(ContentPackageExtractor.java:76)_ at org.apache.sling.distribution.journal.bookkeeper.PackageHandler.installAddPackage(PackageHandler.java:79)_ at org.apache.sling.distribution.journal.bookkeeper.PackageHandler.apply(PackageHandler.java:61)_ at org.apache.sling.distribution.journal.bookkeeper.BookKeeper.importPackage(BookKeeper.java:163)_ at org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber.processQueueItem(DistributionSubscriber.java:395)_ at org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber.fetchAndProcessQueueItem(DistributionSubscriber.java:346)_ at org.apache.sling.distribution.journal.impl.subscriber.DistributionSubscriber.processQueue(DistributionSubscriber.java:324)_ at java.base/java.lang.Thread.run(Thread.java:1583)_Caused by: javax.jcr.RepositoryException: org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException: The entity name must immediately follow the '&' in the entity reference._ at org.apache.jackrabbit.vault.fs.impl.io.AbstractArtifactHandler.importDocView(AbstractArtifactHandler.java:187)_ at org.apache.jackrabbit.vault.fs.impl.io.GenericArtifactHandler.accept(GenericArtifactHandler.java:88)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1115)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:976)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1018)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1018)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1018)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1018)_ at org.apache.jackrabbit.vault.fs.io.Importer.commit(Importer.java:1018)_ at org.apache.jackrabbit.vault.fs.io.Importer.run(Importer.java:531)_ at org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage.extract(ZipVaultPackage.java:284)_ at org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:398)_ at org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:356)_ at org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.extract(JcrPackageImpl.java:342)_ at org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.installPackage(ContentPackageExtractor.java:126)_ at org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.installPackage(ContentPackageExtractor.java:112)_ at org.apache.sling.distribution.journal.bookkeeper.ContentPackageExtractor.handlePath(ContentPackageExtractor.java:87)_ ... 8 more_Caused by: org.apache.jackrabbit.vault.fs.io.DocViewParser$XmlParseException: The entity name must immediately follow the '&' in the entity reference._ at org.apache.jackrabbit.vault.fs.io.DocViewParser.parse(DocViewParser.java:256)_ at org.apache.jackrabbit.vault.fs.impl.io.AbstractArtifactHandler.importDocView(AbstractArtifactHandler.java:177)_ ... 24 more_Caused by: org.xml.sax.SAXParseException; systemId: file:///path/to/file/.content.xml; lineNumber: 400; columnNumber: 36; The entity name must immediately follow the '&' in the entity reference._ at java.xml/com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)_ at
  • 由于&文件中的.content.xml字符转义不正确,出现XML分析错误。
  • 部署队列被阻止,导入程序会反复重试包提取。

解决方法 resolution

要解决错误,请执行以下步骤:

  1. 打开部署包中包含的所有.content.xml文件。
  2. 搜索未正确转义的&字符的任何实例。
  3. 将每个&替换为&amp;或单词and以确保有效的XML。
  4. 保存更新的文件并重新构建部署包。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f