获取错误:" org.apache.sling.api.scripting.ScriptEvaluationException:运行AEM 6时的作者

时间:2017-01-27 09:37:21

标签: jsp cq5 aem

在本地运行AEM 6作者时:4502得到以下错误:

<!--cq{"decorated":false,"type":"corporate/business-center/components/page/dashboard","path":"/content/dev/corporate/mybiz/en_us/dashboard/jcr:content","selectors":null,"servlet":"Script /apps/corporate/business-center/components/page/global/global.jsp","totalTime":1,"selfTime":1,"exception":"org.apache.sling.api.scripting.ScriptEvaluationException: org.apache.sling.scripting.jsp.jasper.JasperException: /apps/corporate/business-center/components/page/global/global.jsp(2,0) /apps/corporate/business-center/components/global.jsp(2,2) File \"/apps/bedrock/components/global.jsp\" not found\r\n\tat org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388)\r\n\tat 

以下是我在运行项目时显示的实际错误:

/apps/corporate/business-center/components/page/global/global.jsp(2,0) /apps/corporate/business-center/components/global.jsp(2,2) File "/apps/bedrock/components/global.jsp" not found

我在谷歌尝试但没有发现类似于此错误

编辑: 以下是我在/apps/corporate/business-center/components/global.jsp找到的global.jsp:

   <!DOCTYPE html>
<%@include file="/apps/corporate/business-center/components/global.jsp"%><%
%><cq:include script="http-response.jsp"/><%
%><!--[if lt IE 7]>  <html class="ie ie6 lte9 lte8 lte7"> <![endif]-->
<!--[if IE 7]>     <html class="ie ie7 lte9 lte8 lte7"> <![endif]-->
<!--[if IE 8]>     <html class="ie ie8 lte9 lte8"> <![endif]-->
<!--[if IE 9]>     <html class="ie ie9 lte9"> <![endif]-->
<!--[if gt IE 9]>  <html> <![endif]-->
<!--[if !IE]><!--> <html>             <!--<![endif]-->
<cq:include script="head.jsp"/>
<body>
    <cq:include path="impersonate" resourceType="corporate/business-      center/components/content/impersonate" />
    <div id="wrapper">
        <div class="init-loader"></div>
        <cq:include script="body.jsp"/>
        <cq:include script="foot.jsp"/>
    </div>
    <cq:include path="footer" resourceType="corporate/business-                center/components/content/footer"/>
 </body>
 </html>
 <!--Version:<c:out value="${cacheKey}" />-->

1 个答案:

答案 0 :(得分:2)

错误信息非常明显。

你有/apps/corporate/business-center/components/page/global/global.jsp的JSP文件试图包含另一个不存在的JSP文件(/apps/bedrock/components/global.jsp)。

这两个文件似乎都特定于某些产品,这些产品不是AEM本身的一部分,而是定制的。也许是你自己的项目,也许是你正在使用的产品。

您需要找出/apps/bedrock/components/global.jsp来自哪里,以及为什么它不适用于您的实例。

您可能缺少项目运行所需的CRX包。或者也许包含因某种原因是完全错误的。

通常,global.jsp的目的是定义要在JSP脚本中使用的大量对象。

global.jsp中提供了基础/libs/foundation/global.jsp。它初始化对各种对象的绑定,例如页面属性,当前会话,请求,资源)等等(通过调用<cq:defineObjects/>。它还包括一堆可以使用的JSP标记库,导入一些常用的课程。

现在,如果您需要一些额外的导入或标记库,通常会在页面中包含您自己的global.jsp以添加必要的代码。

自定义global.jsp脚本通常包含来自/libs/foundation的OOTB脚本,以便包含其中已包含的内容。

<%@include file="/libs/foundation/global.jsp"
%>

在你的情况下,看起来你还有另一层间接,而global.jsp中的/apps/corporate包含来自/apps/bedrock(缺少的那个)的那个,其中转,我希望包含/libs/foundation中的默认值(除非中间有更多)。