AEM6.2: ошибка com.day.cq.wcm.tags.IncludeTag - PullRequest
0 голосов
/ 14 сентября 2018

У нас есть среда узла AEM6.2, и мы пытаемся получить доступ к login.html, но получаем ошибку, как показано ниже.

После поиска я узнал, что версия Java может быть одной из возможных причин, но я уже использую Java 8 для этого приложения. У меня нет идей. Любые предложения с благодарностью.

14.09.2018 14:08:40.299 *ERROR* [192.156.110.11 [1536948520114] GET /content/en/account/login.html HTTP/1.1] com.day.cq.wcm.tags.IncludeTag Error while executing script defaulttopnav
org.apache.sling.api.scripting.ScriptEvaluationException:
        at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:416)
        at org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184)
        at org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491)
        at com.day.cq.wcm.tags.IncludeTag.includeScript(IncludeTag.java:178)
        at com.day.cq.wcm.tags.IncludeTag.doEndTag(IncludeTag.java:95)
        at org.apache.jsp.apps.components.navigation.topnavigation_jsp._jspService(navigation_jsp.java:329)
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
        at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.sling.api.SlingException:
        at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspExceptionInternal(JspServletWrapper.java:691)
        at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:608)
        at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:533)
        at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:449)
        at org.apache.sling.scripting.jsp.JspScriptEngineFactory.callJsp(JspScriptEngineFactory.java:284)
        at org.apache.sling.scripting.jsp.JspScriptEngineFactory.access$100(JspScriptEngineFactory.java:102)
        at org.apache.sling.scripting.jsp.JspScriptEngineFactory$JspScriptEngine.eval(JspScriptEngineFactory.java:536)
        at org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:388)
        ... 201 common frames omitted
Caused by: java.lang.NullPointerException: null
        at org.apache.jsp.apps.components.topnavigation.defaulttopnav_jsp._jspService(defaulttopnav_jsp.java:347)
        at org.apache.sling.scripting.jsp.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        at org.apache.sling.scripting.jsp.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:502)
        ... 206 common frames omitted

Спасибо.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018

Общее решение для ошибок, генерируемых сервлетами, скомпилированными из файлов jsp, заключается в повторной компиляции jsp.

  1. Перейдите в систему / консоль и проверьте, все ли пакеты находятся в активном состоянии
  2. Перейти к sling -> jsp и перекомпилировать все jsps.

Это работаетесли ошибки выбрасываются из otb jsp.Однако, когда пользовательское приложение вызывает ошибку jsps, вам нужно исправить пользовательский код jsp, обработав ошибку.

Другой надежный способ очистки кэшированных файлов классов jsp - это удалить / var / classes

0 голосов
/ 16 сентября 2018

Трассировка стека указывает, что NPE происходит от defaulttopnav_jsp.java, строка 347. Анализ сгенерированного файла Java - это путь.

Начиная с AEM 6.1, ClassLoader по умолчанию был заменен на FSClassLoader, и сгенерированные .java файлы больше не хранятся в /var/classes.

Чтобы найти файл .java, вам необходимо найти идентификатор пакета для пакета FSClassLoader, тогда файлы java будут расположены по адресу:

[AEM_INSTALL_DIR]/crx-quickstart/launchpad/felix/bundle[BUNDLE_ID]/data/classes

Существует также плагин sling, который поможет вам просмотреть сгенерированный файл Java из консоли OSGi. Проверьте эти сообщений для этого.

...