如何修复AEM中sites.html中的NullPointerException?
Posted
技术标签:
【中文标题】如何修复AEM中sites.html中的NullPointerException?【英文标题】:How to fix NullPointerException in sites.html in AEM? 【发布时间】:2016-10-07 14:42:39 【问题描述】:我突然在 Adobe Experience Manager 版本 6.0.0.SP3 中的作者的 sites.html
链接中收到 NullPointerException
有什么想法吗?请帮忙。
Internal Server Error
Cannot serve request to /sites.html/content in /libs/cq/gui/components/siteadmin/admin/pagecard/pagecard.jsp
Exception:
java.lang.NullPointerException
at org.apache.jsp.libs.cq.gui.components.siteadmin.admin.pagecard.pagecard_jsp.getCommentCount(pagecard_jsp.java:99)
...
【问题讨论】:
pagecard.jsp 节点有一个 jcr:content 节点并且权限看起来是正确的。没有拒绝规则。管理员已被授予根路径的 jcr:all 权限。但即使是管理员也遇到了例外。 【参考方案1】:我们发现 /content 下的某些页面缺少 jcr:content 节点。 一些现有的 jcr:content 节点缺少 jcr:title 属性。 我们添加了缺少的 jcr:content 节点和 jcr:title 属性。 这解决了这个问题。
注意: 任何站点(特别是子站点)的根目录应在其 jcr:content 中包含以下内容 - 1. 标题 2. cq:allowedTemplates - 专门定义与该站点一起使用的模板。 3. designPath – 定义站点的客户端库,并且可以包含 Sidekick 的选项。
【讨论】:
【参考方案2】:转到文件系统中的 crx-quickstart 文件夹并搜索 pagecard_jsp.java。
第 99 行是什么?我有一个不同的版本,但我猜是这一行:
Resource commentsResource = page.getContentResource().getChild("alt/comments");
如果此行抛出 NPE,则表示 /content 下的***页面之一缺少 jcr:content 节点或该节点已损坏。
只是胡乱猜测,没有细节。
【讨论】:
谢谢新航!我在第 99 行看到了不同的代码 AttrBuilder attrs = tag.getAttrs();我将检查所有页面是否存在 jcr:content 节点。 我猜您查看的是 jsp 文件而不是 java 文件。但是,无论如何,请查看所有 jcr:content,因为我可以复制您的问题。请点赞。 你是对的。我们发现 /content 下的某些页面缺少 jcr:content 节点。我们添加了这些节点。一些节点缺少 jcr:title 属性。我们也添加了这个缺失的属性。这解决了这个问题。注意:任何站点(特别是子站点)的根应在其 jcr:content 中包含以下内容 - 1. 标题 2. cq:allowedTemplates - 专门定义与该站点一起使用的模板。 3. designPath – 定义站点的客户端库,可以包含 Sidekick 的选项。 我投了赞成票。我收到以下消息:一旦您总共获得 15 点声望,您的投票将改变公开显示的帖子分数。【参考方案3】:我认为我们需要在 /content/your-folder/jcr:content 下添加属性为**: jcr:title :给出确切的名称。点击添加并全部保存。
【讨论】:
以上是关于如何修复AEM中sites.html中的NullPointerException?的主要内容,如果未能解决你的问题,请参考以下文章