我的内容存储库在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。这个问题只面对我吗?或者是否存在可以清除资源类型的产品问题/用例?
我正在运行AEM 6.0 SP2。
答案 0 :(得分:0)
似乎这是一个已知的产品错误,需要为将来的AEM修复。这是我从日托票上得到的回复:
有几个与吊索有关的已知问题:AEM 6.0 SP2及更高版本中的resourceType,但是在复制和粘贴组件时会出现最接近您提到的场景的那个。
删除/中断sling:resourceType属性。此问题包含在内部标识-CQ-4212306中,其修复程序将成为AEM未来版本的一部分。