缺少 AEM 资源 sling:resourceType

AEM Resources missing sling:resourceType

我的内容库在 2 年的时间里积累了许多过时的组件资源。组件节点缺失 sling:resourceType 属性。这些组件节点如下所示:

由于此类不良资源,页面抛出以下异常:

14.09.2017 12:33:21.079 *ERROR* [172.21.142.98 [1505392399461] GET /content/xx/en_ca/home.html HTTP/1.1] 
org.apache.sling.servlets.get.impl.DefaultGetServlet No renderer for extension html, cannot render resource Paragraph, 
path=/content/xx/en_ca/home/jcr:content/par-sidebar/contentbox_c540/rightRailContentPar/contentbox_f1fd, 
type=nt:unstructured, cssClass=default, column=0/0, diffInfo=[null], 
resource=[JcrNodeResource, type=nt:unstructured, superType=null, 
path=/content/xx/en_ca/home/jcr:content/par-sidebar/contentbox_c540/rightRailContentPar/contentbox_f1fd]

进一步挖掘我发现有人写了一个tool to cleanup这样的过时资源。

虽然查询和清理这些无效节点很容易,但我的问题是这些资源是如何最终出现在存储库中的?我试图通过移动组件、从页面中删除组件来模拟,但没有成功。没有删除 sling:resourceType 的自定义脚本。这个问题只有我遇到吗?或者有什么产品issue/usecase可以清空资源类型吗?

我是 运行 AEM 6.0 SP2。

这似乎是一个已知的产品错误,需要为未来的 AEM 修复。这是我从 daycare ticket 得到的回复:

在 AEM 6.0 SP2 及更高版本中有几个与 sling:resourceType 相关的已知问题,但我能找到的最接近您提到的场景的问题是在复制和粘贴组件时发生的。

它removes/breaks sling:resourceType 属性。此问题包含在内部 ID -CQ-4212306 下,其修复将包含在 AEM 的未来版本中。