type Exception report
message The following has evaluated to null or missing:
description The server encountered an internal error that prevented it from fulfilling this request.
exception
freemarker.core.InvalidReferenceException: The following has evaluated to null or missing: ==> p.merchant [in template "page/template/Standard/productList.ftl" at line 25, column 67] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${p.merchant.merchantName} [in template "page/template/Standard/productList.ftl" at line 25, column 65] ---- freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:131) freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:77) freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:40) freemarker.core.NonHashException.<init>(NonHashException.java:46) freemarker.core.Dot._eval(Dot.java:45) freemarker.core.Expression.eval(Expression.java:78) freemarker.core.Expression.evalAndCoerceToString(Expression.java:82) freemarker.core.DollarVariable.accept(DollarVariable.java:41) freemarker.core.Environment.visit(Environment.java:324) freemarker.core.MixedContent.accept(MixedContent.java:54) freemarker.core.Environment.visitByHiddingParent(Environment.java:345) freemarker.core.IteratorBlock$IterationContext.executeNestedBlockInner(IteratorBlock.java:240) freemarker.core.IteratorBlock$IterationContext.executeNestedBlock(IteratorBlock.java:220) freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:194) freemarker.core.Environment.visitIteratorBlock(Environment.java:572) freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:78) freemarker.core.IteratorBlock.accept(IteratorBlock.java:64) freemarker.core.Environment.visit(Environment.java:324) freemarker.core.MixedContent.accept(MixedContent.java:54) freemarker.core.Environment.visitByHiddingParent(Environment.java:345) freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48) freemarker.core.Environment.visit(Environment.java:324) freemarker.core.MixedContent.accept(MixedContent.java:54) freemarker.core.Environment.visit(Environment.java:324) freemarker.core.Environment.process(Environment.java:302) freemarker.template.Template.process(Template.java:325) org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:223) org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:191) com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:372) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:276) com.chinatool.market.web.interceptor.CheckLoginInterceptor.intercept(CheckLoginInterceptor.java:37) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189) com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245) org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:575) org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81) org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter.doFilter(StrutsExecuteFilter.java:93) com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:91) com.chinatool.market.web.filter.ProductHitsFilter.doFilter(ProductHitsFilter.java:172)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.15 logs.