null
发布时间:freemarker template error (debug mode; use rethrow in production!):
the following has evaluated to null or missing:
==> info.publishdate [in template "default/xxgk_detail.shtml" at line 68, column 35]
----
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. (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: ${info.publishdate?string("yyyy.mm.dd")} [in template "default/xxgk_detail.shtml" at line 68, column 33]
- reached through: @whir_info siteid="${site.id}" clo_id... [in template "default/xxgk_detail.shtml" at line 65, column 5]
----
java stack trace (for programmers):
----
freemarker.core.invalidreferenceexception: [... exception message was already printed; see it above ...]
at freemarker.core.invalidreferenceexception.getinstance(invalidreferenceexception.java:134)
at freemarker.core.unexpectedtypeexception.newdesciptionbuilder(unexpectedtypeexception.java:80)
at freemarker.core.unexpectedtypeexception.(unexpectedtypeexception.java:43)
at freemarker.core.builtinsformultipletypes$stringbi._eval(builtinsformultipletypes.java:709)
at freemarker.core.expression.eval(expression.java:81)
at freemarker.core.methodcall._eval(methodcall.java:58)
at freemarker.core.expression.eval(expression.java:81)
at freemarker.core.dollarvariable.calculateinterpolatedstringormarkup(dollarvariable.java:96)
at freemarker.core.dollarvariable.accept(dollarvariable.java:59)
at freemarker.core.environment.visit(environment.java:363)
at freemarker.core.environment$nestedelementtemplatedirectivebody.render(environment.java:2802)
at com.whir.web.controller.directive.infodirective.execute(infodirective.java:164)
at freemarker.core.environment.visit(environment.java:427)
at freemarker.core.unifiedcall.accept(unifiedcall.java:101)
at freemarker.core.environment.visit(environment.java:327)
at freemarker.core.environment.visit(environment.java:333)
at freemarker.core.environment.process(environment.java:306)
at freemarker.template.template.process(template.java:386)
at com.whir.service.back.generation.generatehtmlserviceimpl.generatehtml(generatehtmlserviceimpl.java:1168)
at com.whir.service.back.generation.generatehtmlserviceimpl.generatedetail(generatehtmlserviceimpl.java:1057)
at com.whir.service.back.generation.generatehtmlserviceimpl.generatedetail(generatehtmlserviceimpl.java:800)
at com.whir.message.consumer.infoconsumer.htmldetail(infoconsumer.java:309)
at com.whir.message.consumer.infoconsumer$$fastclassbyspringcglib$$85138f8e.invoke()
at org.springframework.cglib.proxy.methodproxy.invoke(methodproxy.java:204)
at org.springframework.aop.framework.cglibaopproxy$dynamicadvisedinterceptor.intercept(cglibaopproxy.java:685)
at com.whir.message.consumer.infoconsumer$$enhancerbyspringcglib$$d40a4234.htmldetail()
at sun.reflect.generatedmethodaccessor714.invoke(unknown source)
at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43)
at java.lang.reflect.method.invoke(method.java:498)
at org.springframework.messaging.handler.invocation.invocablehandlermethod.doinvoke(invocablehandlermethod.java:181)
at org.springframework.messaging.handler.invocation.invocablehandlermethod.invoke(invocablehandlermethod.java:114)
at org.springframework.jms.listener.adapter.messagingmessagelisteneradapter.invokehandler(messagingmessagelisteneradapter.java:114)
at org.springframework.jms.listener.adapter.messagingmessagelisteneradapter.onmessage(messagingmessagelisteneradapter.java:77)
at org.springframework.jms.listener.abstractmessagelistenercontainer.doinvokelistener(abstractmessagelistenercontainer.java:736)
at org.springframework.jms.listener.abstractmessagelistenercontainer.invokelistener(abstractmessagelistenercontainer.java:696)
at org.springframework.jms.listener.abstractmessagelistenercontainer.doexecutelistener(abstractmessagelistenercontainer.java:674)
at org.springframework.jms.listener.abstractpollingmessagelistenercontainer.doreceiveandexecute(abstractpollingmessagelistenercontainer.java:318)
at org.springframework.jms.listener.abstractpollingmessagelistenercontainer.receiveandexecute(abstractpollingmessagelistenercontainer.java:257)
at org.springframework.jms.listener.defaultmessagelistenercontainer$asyncmessagelistenerinvoker.invokelistener(defaultmessagelistenercontainer.java:1189)
at org.springframework.jms.listener.defaultmessagelistenercontainer$asyncmessagelistenerinvoker.executeongoingloop(defaultmessagelistenercontainer.java:1179)
at org.springframework.jms.listener.defaultmessagelistenercontainer$asyncmessagelistenerinvoker.run(defaultmessagelistenercontainer.java:1076)
at java.lang.thread.run(thread.java:748)