最近要升级tomcat。从5.5.25升级到5.5.35或者是6.x,结果悲剧了。在我的本地tomcat成功升级(我的环境是win7 tomcat6.0.36 jdk 1.5)但是将此tomcat及tomcat中的webapps一起copy到winserver2003 jdk1.5环境中就不能访问项目中的报表系统。freeer中取不到request中的值。如此坑爹 大神有没有碰到过?试了很多版本。测试的时候刚开始以为是tomcat的原因因为如果将catalina.jar tomcat-util.jar不升级是可以的。但是这两个是tomcat的核心文件。不得不升级。
Expression page is undefined on line 1, column 14 in page/inc/head.ftl.
The problematic instruction:
----------
==> ${page.head.title} [on line 1, column 12 in page/inc/head.ftl]
 in include "/page/inc/head.ftl" [on line 4, column 9 in page/list.ftl]
----------Java backtrace for programmers:
----------
freeer.core.InvalidReferenceException: Expression page is undefined on line 1, column 14 in page/inc/head.ftl.
at freeer.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freeer.core.TemplateObject.invalidTypeException(TemplateObject.java:134)
at freeer.core.Dot._getAsTemplateModel(Dot.java:78)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.Dot._getAsTemplateModel(Dot.java:74)
at freeer.core.Expression.getAsTemplateModel(Expression.java:89)
at freeer.core.Expression.getStringValue(Expression.java:93)
at freeer.core.DollarVariable.accept(DollarVariable.java:76)
at freeer.core.Environment.visit(Environment.java:210)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:210)
at freeer.core.Environment.include(Environment.java:1483)
at freeer.core.Include.accept(Include.java:169)
at freeer.core.Environment.visit(Environment.java:210)
at freeer.core.MixedContent.accept(MixedContent.java:92)
at freeer.core.Environment.visit(Environment.java:210)
at freeer.core.Environment.process(Environment.java:190)
at freeer.template.Template.process(Template.java:237)
at freeer.ext.servlet.FreeerServlet.process(FreeerServlet.java:452)
at freeer.ext.servlet.FreeerServlet.doPost(FreeerServlet.java:399)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:78)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
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:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
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:293)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:594)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1675)
at java.lang.Thread.run(Thread.java:595)
上面是错误。求解决~~

解决方案 »

  1.   

    刚开始以为是tomcat的原因,那现在呢?
      

  2.   

    "......但是将此tomcat及tomcat中的webapps一起copy到winserver2003 jdk1.5环境中就不能访问项目中的报表系统。freeer中取不到request中的值。如此坑爹 大神有没有碰到过?试了很........"你最好中心发布一下吧,为什么直接copy呢?我不觉得从5.5升到6.0会有这么大的问题。你把项目导入到eclipse里,在eclipse里重新配置tomcat且重新部署下项目吧!
      

  3.   

    额 一两个月了。。当时也忘了解释了。。其实是一个很搞笑的问题。就是编码问题。因为过滤器中的编码设置不对。各种utf8 gbk混用导致参数无法获取。后来在对应的form提交时强制以utf-8的编码提交。就好了。这样参数就能获取了。错误也不报了。多谢楼上了。