Java 在aem中显示所有可用的标签
我正在尝试制作一个组件,该组件可以打印crx中所有可用的标记,但是我得到了一个空指针异常。我创建了以下界面Java 在aem中显示所有可用的标签,java,jsp,tags,aem,Java,Jsp,Tags,Aem,我正在尝试制作一个组件,该组件可以打印crx中所有可用的标记,但是我得到了一个空指针异常。我创建了以下界面 package com.aem.community.core.services; 导入java.util.ArrayList; 导入java.util.HashMap; 导入java.util.Map; 公共接口列表标签{ 映射listAllTags(); }这是因为您试图将ResourceResolver注入OSGI服务。你不能这样做: @Reference private Resou
package com.aem.community.core.services;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Map;
公共接口列表标签{
映射listAllTags();
}
这是因为您试图将ResourceResolver注入OSGI服务。你不能这样做:
@Reference
private ResourceResolver resourceResolver;
可能是在使用资源解析程序时抛出了NullPointerException。有两种方法可以在OSGI服务中获取资源解析程序,但您可以参考或此答案,以帮助其他寻求高效遍历资源树的人,而不是编写多个循环并调试它们。 Sling API提供了一个名为AbstractResourceVisitor.html()的抽象实现 ACS commons提供了一个示例实现
TLDR:实现一个扩展AbstractResourceVisitor的具体类,该类使用需要执行的操作覆盖访问方法。如果在继续遍历时需要考虑自定义条件,则还可以覆盖accept方法。您这样做是作为学习API的练习,还是在尝试满足一些业务需求?如果是后者,则可能有更好的方法来获取标记列表。坦白地说,我不知道你为什么要这么做。另外:你介意共享NullPointerException的stacktrace吗?有几个指针:1)使用TagManager API 2)避免使用JSP脚本。更多信息: