Aem currentNode对象提供NullPointerException

Aem currentNode对象提供NullPointerException,aem,sling,Aem,Sling,在我的组件的JSP中,如果我想使用currentNode对象引用当前节点,它会抛出一个NullPointerException,然后整个组件抛出一个ScriptEvaluationException 我的组件JSP的顶部包含了global.JSP。我猜currentNode对象是由global.jsp创建的 奇怪的是,组件仅在特定站点中抛出这些异常。它在其他人身上也很管用 可能的原因是什么?在什么条件下,currentNode对象为空?可能您的组件是空的?如果您有这样的include标记: &l

在我的组件的JSP中,如果我想使用
currentNode
对象引用当前节点,它会抛出一个
NullPointerException
,然后整个组件抛出一个
ScriptEvaluationException

我的组件JSP的顶部包含了
global.JSP
。我猜currentNode对象是由global.jsp创建的

奇怪的是,组件仅在特定站点中抛出这些异常。它在其他人身上也很管用

可能的原因是什么?在什么条件下,
currentNode
对象为空?

可能您的组件是空的?如果您有这样的include标记:

<cq:include path="mynode" resourceType="myapp/components/somecomponent" />
也许你的组件是一个?如果您有这样的include标记:

<cq:include path="mynode" resourceType="myapp/components/somecomponent" />

我想补充一点,只有在拖放组件之后才创建节点。因此,如果不是这样,您将不会在
/content/your site/

中拥有节点。我想补充一点,只有在拖放组件之后才创建节点。因此,如果不是这样,您的节点将不会位于我使用的
/content/your site/

中。但我不明白——“我的节点不存在”。好的,当我们使用添加组件时,无论如何都会创建“path”变量(mynode)。。不是吗?
不会创建任何新节点。自己检查一下;)我更新了我的答案,提示在不使用
curretNode
对象的情况下获取
QueryManager
对象。我使用了。但我不明白——“我的节点不存在”。好的,当我们使用添加组件时,无论如何都会创建“path”变量(mynode)。。不是吗?
不会创建任何新节点。自己检查一下;)我更新了我的答案,提示在不使用
curretNode
对象的情况下获取
QueryManager
对象。上下文是什么?您试图从何处获取哪种节点?我的页面模板中添加了一个自定义搜索组件。在这里,我需要使用“currentNode.getSession().getWorkspace().getQueryManager().createQuery()”获取查询对象,但currentNode为null。上下文是什么?您试图从何处获取哪种节点?我的页面模板中添加了一个自定义搜索组件。在这里,我需要使用“currentNode.getSession().getWorkspace().getQueryManager().createQuery()”获取查询对象,但currentNode为null。