AEM Resources 缺少吊索:resourceType

Sar*_*ash 5 sling aem

我的内容存储库在 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]
Run Code Online (Sandbox Code Playgroud)

进一步挖掘我发现有人写了一个工具来清理这些过时的资源。

虽然查询和清理这些无效节点很容易,但我的问题是这些资源是如何在存储库中结束的?我试图通过移动组件,从页面中删除组件来模拟但徒劳无功。没有删除 sling:resourceType 的自定义脚本。这个问题只有我一个人遇到吗?或者是否有任何产品问题/用例可以清除资源类型?

我正在运行 AEM 6.0 SP2。

Sar*_*ash 0

似乎这是一个已知的产品错误,需要在未来的 AEM 中修复。这是我从日托票上得到的回复:

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

它删除/破坏 sling:resourceType 属性。此问题包含在内部 ID -CQ-4212306 中,该问题的修复将成为 AEM 未来版本的一部分。