如何解决 Adob​​e Experience Manager 中包含组件期间的错误?

Posted

技术标签:

【中文标题】如何解决 Adob​​e Experience Manager 中包含组件期间的错误?【英文标题】:How to solve error during include of component in Adobe Experience Manager? 【发布时间】:2020-05-02 20:33:27 【问题描述】:

我在 Eclipse 中使用 Adob​​e Experience Manager,我已按照本教程中的说明进行操作 https://docs.adobe.com/content/help/en/experience-manager-learn/getting-started-wknd-tutorial-develop/component-basics.html.

一切运行良好。但是,如果我添加一个 hello world 组件,它会给我一个错误:

包含组件“/apps/wknd/components/content/helloworld”时出错

错误信息:

org.apache.sling.api.SlingException:无法获取 DefaultSlingScript: 中的编译错误 org/apache/sling/scripting/sightly/apps/wknd/components/content/helloworld/helloworld_html.java: 第 52 行,第 2348 列: com.adobe.aem.guides.wknd.core.models.HelloWorldModel 不能 解析为一个类型

处理信息:

页面 = /content/wknd/us/en/component-basics 资源 路径 = /content/wknd/us/en/component-basics/jcr:content/root/responsivegrid/helloworld_1476106194 单元格 = helloworld 单元格搜索 路径 = page|basicpage/root|responsivegrid/responsivegrid/helloworld 组件路径 = /apps/wknd/components/content/helloworld

完全例外

org.apache.sling.api.SlingException:无法获取 DefaultSlingScript:编译错误 org/apache/sling/scripting/sightly/apps/wknd/components/content/helloworld/helloworld_html.java: 第 52 行,第 2348 列: com.adobe.aem.guides.wknd.core.models.HelloWorldModel 不能 解析为类型 org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:510) 在 org.apache.sling.engine.impl.request.RequestData.service(RequestData.java:552) 在 org.apache.sling.engine.impl.filter.SlingComponentFilterChain.render(SlingComponentFilterChain.java:44) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:82) 在 com.day.cq.wcm.core.impl.WCMDebugFilter.doFilterWithErrorHandling(WCMDebugFilter.java:192) 在 com.day.cq.wcm.core.impl.WCMDebugFilter.doFilter(WCMDebugFilter.java:159) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:278) 在 com.day.cq.wcm.core.impl.WCMComponentFilter.filterRootInclude(WCMComponentFilter.java:373) 在 com.day.cq.wcm.core.impl.WCMComponentFilter.doFilter(WCMComponentFilter.java:190) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.core.impl.page.PageLockFilter.doFilter(PageLockFilter.java:91) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.personalization.impl.TargetComponentFilter.doFilter(TargetComponentFilter.java:94) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.engine.impl.SlingRequestProcessorImpl.processComponent(SlingRequestProcessorImpl.java:282) 在 org.apache.sling.engine.impl.filter.RequestSlingFilterChain.render(RequestSlingFilterChain.java:49) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:76) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) 在 com.day.cq.wcm.core.impl.warp.TimeWarpFilter.doFilter(TimeWarpFilter.java:109) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.cq.social.ugcbase.security.impl.SaferSlingPostServlet.doFilter(SaferSlingPostServlet.java:114) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) 在 com.day.cq.dam.core.impl.assetlinkshare.AdhocAssetShareAuthHandler.doFilter(AdhocAssetShareAuthHandler.java:437) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) 在 com.day.cq.dam.core.impl.servlet.ActivityRecordHandler.doFilter(ActivityRecordHandler.java:141) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.granite.rest.impl.servlet.ApiResourceFilter.doFilter(ApiResourceFilter.java:70) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.granite.requests.logging.impl.RequestLoggerImpl.doFilter(RequestLoggerImpl.java:134) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.granite.rest.assets.impl.AssetContentDispositionFilter.doFilter(AssetContentDispositionFilter.java:96) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.granite.csrf.impl.CSRFFilter.doFilter(CSRFFilter.java:217) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.core.impl.AuthoringUIModeServiceImpl.doFilter(AuthoringUIModeServiceImpl.java:372) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.mobile.core.impl.redirect.RedirectFilter.doFilter(RedirectFilter.java:248) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.aem.professional.core.filters.LoggingFilter.doFilter(LoggingFilter.java:58) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.engine.impl.debug.RequestProgressTrackerLogFilter.doFilter(RequestProgressTrackerLogFilter.java:107) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.cq.social.commons.cors.CORSAuthenticationFilter.doFilter(CORSAuthenticationFilter.java:91) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:226) 在 com.day.cq.wcm.foundation.forms.impl.FormsHandlingServlet.doFilter(FormsHandlingServlet.java:138) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.granite.optout.impl.OptOutFilter.doFilter(OptOutFilter.java:76) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.foundation.forms.FormsHandlingServletHelper.handleFilter(FormsHandlingServletHelper.java:226) 在 com.adobe.cq.wcm.core.components.internal.servlets.CoreFormHandlingServlet.doFilter(CoreFormHandlingServlet.java:126) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.day.cq.wcm.core.impl.WCMRequestFilter.doFilter(WCMRequestFilter.java:90) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.cq.history.impl.HistoryRequestFilter.doFilter(HistoryRequestFilter.java:122) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.cq.mcm.campaign.servlets.CampaignCopyTracker.doFilter(CampaignCopyTracker.java:100) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.rewriter.impl.RewriterFilter.doFilter(RewriterFilter.java:87) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:81) 在 com.adobe.granite.httpcache.impl.InnerCacheFilter.doFilter(InnerCacheFilter.java:60) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.security.impl.ContentDispositionFilter.doFilter(ContentDispositionFilter.java:152) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:78) 在 com.adobe.granite.resourceresolverhelper.impl.ResourceResolverHelperImpl.doFilter(ResourceResolverHelperImpl.java:83) 在 org.apache.sling.engine.impl.filter.AbstractSlingFilterChain.doFilter(AbstractSlingFilterChain.java:72) 在 org.apache.sling.engine.impl.SlingRequestProcessorImpl.doProcessRequest(SlingRequestProcessorImpl.java:151) 在 org.apache.sling.engine.impl.SlingMainServlet.service(SlingMainServlet.java:244) 在 org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:123) 在 org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:86) 在 com.adobe.granite.license.impl.LicenseCheckFilter.doFilter(LicenseCheckFilter.java:308) 在 org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) 在 org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) 在 org.apache.sling.i18n.impl.I18NFilter.doFilter(I18NFilter.java:131) 在 org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) 在 org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) 在 org.apache.sling.featureflags.impl.FeatureManager.doFilter(FeatureManager.java:116) 在 org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) 在 org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) 在 org.apache.sling.engine.impl.log.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:72) 在 org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) 在 org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) 在 org.apache.sling.engine.impl.parameters.RequestParameterSupportConfigurer.doFilter(RequestParameterSupportConfigurer.java:63) 在 org.apache.felix.http.base.internal.handler.FilterHandler.handle(FilterHandler.java:142) 在 org.apache.felix.http.base.internal.dispatch.InvocationChain.doFilter(InvocationChain.java:81) 在 org.apache.felix.http.base.internal.dispatch.Dispatcher$1.doFilter(Dispatcher.java:146) 在 org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1002) 在 org.apache.sling.security.impl.ReferrerFilter.doFilter(ReferrerFilter.java:326) 在 org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:136) 在 org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) 在 org.apache.felix.http.sslfilter.internal.SslFilter.doFilter(SslFilter.java:97) 在 org.apache.felix.http.base.internal.handler.PreprocessorHandler.handle(PreprocessorHandler.java:136) 在 org.apache.felix.http.base.internal.whiteboard.WhiteboardManager$2.doFilter(WhiteboardManager.java:1008) 在 org.apache.felix.http.base.internal.whiteboard.WhiteboardManager.invokePreprocessors(WhiteboardManager.java:1012) 在 org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:91) 在 org.apache.felix.http.base.internal.dispatch.DispatcherServlet.service(DispatcherServlet.java:49) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:725) 在 org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873) 在 org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 在 org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220) 在 org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) 在 org.eclipse.jetty.server.Server.handle(Server.java:502) 在 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) 在 org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) 在 org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) 在 org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) 在 org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) 在 org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) 在 org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) 在 org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) 在 org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) 在 org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683) 在 java.base/java.lang.Thread.run(Thread.java:830) 引起: org.apache.sling.scripting.sightly.SightlyException:编译 错误 org/apache/sling/scripting/sightly/apps/wknd/components/content/helloworld/helloworld_html.java: 第 52 行,第 2348 列: com.adobe.aem.guides.wknd.core.models.HelloWorldModel 不能 解析为类型 org.apache.sling.scripting.sightly.impl.engine.compiled.SlingHTLMasterCompiler.compileSource(SlingHTLMasterCompiler.java:429) 在 org.apache.sling.scripting.sightly.impl.engine.compiled.SlingHTLMasterCompiler.compileHTLScript(SlingHTLMasterCompiler.java:245) 在 org.apache.sling.scripting.sightly.impl.engine.SightlyScriptEngine.compile(SightlyScriptEngine.java:58) 在 org.apache.sling.scripting.core.impl.DefaultSlingScript.call(DefaultSlingScript.java:379) 在 org.apache.sling.scripting.core.impl.DefaultSlingScript.eval(DefaultSlingScript.java:184) 在 org.apache.sling.scripting.core.impl.DefaultSlingScript.service(DefaultSlingScript.java:491)

对如何解决此类问题或有关 AEM 错误的任何其他参考有任何想法吗?谢谢!

【问题讨论】:

请包含完整的堆栈跟踪。当类/模型在 AEM 中不可用时,通常会发生此错误,即您的捆绑包未安装/未激活,或者该类未注册为 Sling 模型,或者该类在执行期间引发了异常。 我已经更新了问题。谢谢! @rakhi4110 您的捆绑包在 OSGi 中是否处于活动状态? @rakhi4110 未激活,仅显示已安装。这个怎么激活? 单击捆绑包名称,它应该会展开。如果缺少某些依赖项,它将以红色突出显示这些类。如果一切正常,请单击右侧的开始图标并监视日志。它通常应该给出激活捆绑包时出错的堆栈跟踪。 【参考方案1】:

尝试在 OSGi 中删除您的包并重新安装。转到您的核心目录并运行以下命令:

mvn -PautoInstallBundle clean install

【讨论】:

您能否解释一下问题是什么以及为什么这会有所帮助? 根据操作,捆绑包已安装但无法激活。我怀疑安装过程中出了点问题。 如何在 OSGi 中删除捆绑包?【参考方案2】:

这可能有两个原因。 1)您没有构建核心模块,或者您的核心包没有正确构建。使用命令mvn clean install -PautoInstallBundle 仅构建捆绑包。

2) 第二个原因可能是您的包正在构建并部署在服务器上,但依赖关系没有得到解决。如果捆绑包处于活动状态,请检查系统控制台。如果它未激活,则展开捆绑包并检查缺少哪个依赖项。一旦找到缺少的依赖项,然后在 osgi 中安装依赖项。

【讨论】:

【参考方案3】:

尝试在 core/pom.xml 的 build 标签下添加这个包:

                    <configuration>
                        <bnd><![CDATA[ Import-Package: 
                          javax.annotation;version=0.0.0, \
                            com.day.cq.wcm.api;version=0.0.0, \
                            org.apache.sling.api.resource;version=0.0.0,\
                            org.apache.sling.api.servlets;version=0.0.0,\
                            *]]>
                        </bnd>
                    </configuration>

它对我有用!

【讨论】:

以上是关于如何解决 Adob​​e Experience Manager 中包含组件期间的错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 Flash Builder 4.7 找不到所需的 Adob​​e Flash Player 调试器版本?

iOS 8 中的 Adob​​e AIR - 后台通知操作

如何在 Adob​​e Animate 中悬停时反向播放动画?

PDF 压缩 Adob​​e 是如何做到的?

如何在保存 PDF 表单时阻止 Adob​​e Reader 询问“另存为”(即只允许“保存”)?

如何以编程方式知道 Adob​​e Reader 已完成文件加载?