主题 : jeecms3.1存在重大bug
级别: 童生
UID: 22734
积分:22 加为好友
威望: 0 精华: 0
主题:2 回复:13
注册时间:2011-08-14
在线时长:0
1#   发表于:2011-08-24 12:38:35  IP:222.205.*.*
第一次使用jeecms系统,不知道其综版本有没有问题,但这个问题我弄了好几天了,
几乎把所有的源代码看了一遍,也没有找到解决的法。

最后,我在程序里加了一个vo把hibernate*对对象先加载到vo,然后再展现到模版才解决了问题。。
但这不是最好的解决方法。


程序测试时在后台打印的栏目id,name都没有问题; 
输出到模版文件就报当前栏目的id为空,但是栏目的名称可以显示出来。 

初步估计是freemaker在延时加载hibernate相关信息时报错。 


Hibernate: select channel0_.channel_id as channel1_6_, channel0_.channel_path as channel2_6_, channel0_.lft as lft6_, channel0_.rgt as rgt6_, channel0_.priority as priority6_, channel0_.has_content as has6_6_, channel0_.is_display as is7_6_, channel0_.site_id as site8_6_, channel0_.model_id as model9_6_, channel0_.parent_id as parent10_6_ from jc_channel channel0_ where channel0_.site_id=? and (channel0_.parent_id is null) and channel0_.has_content=1 order by channel0_.priority asc, channel0_.channel_id asc 
12:32:33.578 ERROR freemarker.runtime - Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html. 
freemarker.core.InvalidReferenceException: Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html. 
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) ~[freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Expression.getStringValue(Expression.java:118) ~[freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Expression.getStringValue(Expression.java:93) ~[freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.DollarVariable.accept(DollarVariable.java:76) ~[freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.visit(Environment.java:417) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.MixedContent.accept(MixedContent.java:92) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.visit(Environment.java:210) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.core.Environment.process(Environment.java:190) [freemarker-2.3.16.jar:2.3.16] 
at freemarker.template.Template.process(Template.java:237) [freemarker-2.3.16.jar:2.3.16] 
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.processTemplate(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na] 
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.doRender(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na] 
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.renderMergedTemplateModel(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na] 
at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.render(RichFreeMarkerView.java:50001) [RichFreeMarkerView.class:na] 
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) [spring.web.servlet-3.0.5.jar:3.0.5.RELEASE] 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) [servlet-api.jar:na] 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) [servlet-api.jar:na] 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) [catalina.jar:na] 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na] 
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) [spring.orm-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [spring.web-3.0.5.jar:3.0.5.RELEASE] 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na] 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na] 
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) [spring.web-3.0.5.jar:3.0.5.RELEASE] 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) [spring.web-3.0.5.jar:3.0.5.RELEASE] 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na] 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na] 
at com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:38) [ProcessTimeFilter.class:na] 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) [catalina.jar:na] 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) [catalina.jar:na] 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) [catalina.jar:na] 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) [catalina.jar:na] 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) [catalina.jar:na] 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [catalina.jar:na] 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [catalina.jar:na] 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) [catalina.jar:na] 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) [tomcat-coyote.jar:na] 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) [tomcat-coyote.jar:na] 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) [tomcat-coyote.jar:na] 
at java.lang.Thread.run(Thread.java:619) [na:1.6.0] 
2011-8-24 12:32:33 org.apache.catalina.core.StandardWrapperValve invoke 
严重: Servlet.service() for servlet JeeCmsAdmin threw exception 

Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html. 
The problematic instruction: 
---------- 
==> ${c.id} [on line 11, column 24 in jeecms_sys/content/edit.html] 
---------- 

Java backtrace for programmers: 
---------- 
freemarker.core.InvalidReferenceException: Expression c.id is undefined on line 11, column 26 in jeecms_sys/content/edit.html. 
at freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:124) 
at freemarker.core.Expression.getStringValue(Expression.java:118) 
at freemarker.core.Expression.getStringValue(Expression.java:93) 
at freemarker.core.DollarVariable.accept(DollarVariable.java:76) 
at freemarker.core.Environment.visit(Environment.java:210) 
at freemarker.core.MixedContent.accept(MixedContent.java:92) 
at freemarker.core.Environment.visit(Environment.java:210) 
at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:179) 
at freemarker.core.Environment.visit(Environment.java:417) 
at freemarker.core.IteratorBlock.accept(IteratorBlock.java:102) 
at freemarker.core.Environment.visit(Environment.java:210) 
at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:79) 
at freemarker.core.Environment.visit(Environment.java:210) 
at freemarker.core.MixedContent.accept(MixedContent.java:92) 
at freemarker.core.Environment.visit(Environment.java:210) 
at freemarker.core.Environment.process(Environment.java:190) 
at freemarker.template.Template.process(Template.java:237) 
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366) 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.processTemplate(RichFreeMarkerView.java:50001) 
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283) 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.doRender(RichFreeMarkerView.java:50001) 
at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233) 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.renderMergedTemplateModel(RichFreeMarkerView.java:50001) 
at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167) 
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
at com.jeecms.common.web.springmvc.RichFreeMarkerView.render(RichFreeMarkerView.java:50001) 
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) 
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at com.jeecms.common.web.ProcessTimeFilter.doFilter(ProcessTimeFilter.java:38) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) 
at java.lang.Thread.run(Thread.java:619) 
1 共1页