struts2.2.3 + spring3.0.4 + ibatis 架构
其中使用freeer 在weblogic 10上发布静态页面 test.ftl加载的时候不报错
只要在页面中使用 ${test}就会报错。服务器启动没有异常。就是在页面加载的时候报错。郁闷了。请各位帮帮忙,小弟不甚感激。还有就是JSP 页面不会报错。2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@5a5e89], property=struts]
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@5a5e89], property=struts]
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Creating an DefaultActionProxy for namespace / and action name mission
2011-11-02 12:33:56 [DEBUG](AbstractBeanFactory.java:242) Returning cached instance of singleton bean 'missionAction'
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) intercept '//mission' { 
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) applied invocation context locale=zh_CN
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) before Locale=zh_CN
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Entering nullPropertyValue [target=[com.vm.mission.action.MissionAction@d456af, com.opensymphony.xwork2.DefaultTextProvider@5a5e89], property=struts]
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) class loader weblogic.utils.classloaders.ChangeAwareClassLoader is not tomcat loader.
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) class loader weblogic.utils.classloaders.ChangeAwareClassLoader is not tomcat loader.
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Bypassing //mission
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Setting static parameters {}
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Setting params NONE
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Setting params 
2011-11-02 12:33:56 [DEBUG](CommonsLogger.java:68) Validating //mission with method execute.
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Invoking validate() on action com.vm.mission.action.MissionAction@d456af
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) cannot find method [validateExecute] in action [com.vm.mission.action.MissionAction@d456af]
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) cannot find method [validateDoExecute] in action [com.vm.mission.action.MissionAction@d456af]
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Executing action method = null
2011-11-02 12:33:57 [DEBUG](AbstractBeanFactory.java:242) Returning cached instance of singleton bean 'sampleTransactionAdvice'
2011-11-02 12:33:57 [DEBUG](AbstractBeanFactory.java:242) Returning cached instance of singleton bean 'sampleTransactionAdvice'
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Using object wrapper of class org.apache.struts2.views.freeer.StrutsBeanWrapper
2011-11-02 12:33:57 [DEBUG](Log4JLoggerFactory.java:81) Could not find template in cache, creating new one; id=[WEB-INF/templates/mission/mission_main.ftl[zh_CN,UTF-8,parsed] ]
2011-11-02 12:33:57 [DEBUG](Log4JLoggerFactory.java:81) Compiling FreeMarker template WEB-INF/templates/mission/mission_main.ftl[zh_CN,UTF-8,parsed]  from C:\PROJECT-4V4M\workspace\CKWebGame\WebContent\WEB-INF\templates\mission\mission_main.ftl
2011-11-02 12:33:57 [DEBUG](Log4JLoggerFactory.java:81) Could not find template in cache, creating new one; id=[WEB-INF/templates/macro/lib.ftl[zh_CN,UTF-8,parsed] ]
2011-11-02 12:33:57 [DEBUG](Log4JLoggerFactory.java:81) Compiling FreeMarker template WEB-INF/templates/macro/lib.ftl[zh_CN,UTF-8,parsed]  from C:\PROJECT-4V4M\workspace\CKWebGame\WebContent\WEB-INF\templates\macro\lib.ftl
2011-11-02 12:33:57 [DEBUG](Log4JLoggerFactory.java:81) Could not find template in cache, creating new one; id=[WEB-INF/templates/mission/header.ftl[zh_CN,UTF-8,parsed] ]
2011-11-02 12:33:57 [DEBUG](Log4JLoggerFactory.java:81) Compiling FreeMarker template WEB-INF/templates/mission/header.ftl[zh_CN,UTF-8,parsed]  from C:\PROJECT-4V4M\workspace\CKWebGame\WebContent\WEB-INF\templates\mission\header.ftl
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Entering nullPropertyValue [target=[com.vm.mission.action.MissionAction@d456af, com.opensymphony.xwork2.DefaultTextProvider@5a5e89], property=test]
2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Entering nullPropertyValue [target=[com.vm.mission.action.MissionAction@d456af, com.opensymphony.xwork2.DefaultTextProvider@5a5e89], property=test]
2011-11-02 12:33:57 [ERROR](Log4JLoggerFactory.java:96) Expression test is undefined on line 12, column 88 in WEB-INF/templates/mission/header.ftl.Expression test is undefined on line 12, column 88 in WEB-INF/templates/mission/header.ftl.
The problematic instruction:
----------
==> ${test} [on line 12, column 86 in WEB-INF/templates/mission/header.ftl]
 in include "/WEB-INF/templates/mission/header.ftl" [on line 14, column 17 in WEB-INF/templates/mission/mission_main.ftl]
----------Java backtrace for programmers:
----------
freeer.core.InvalidReferenceException: Expression test is undefined on line 12, column 88 in WEB-INF/templates/mission/header.ftl.
at freeer.core.TemplateObject.assertNonNull(TemplateObject.java:124)
at freeer.core.Expression.getStringValue(Expression.java:118)
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 org.apache.struts2.views.freeer.FreeerResult.doExecute(FreeerResult.java:201)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:373)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)

解决方案 »

  1.   

    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:498)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) skipping cleanup counter=1
    2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Entering nullPropertyValue [target=[com.opensymphony.xwork2.DefaultTextProvider@5a5e89], property=struts]
    2011-11-02 12:33:57 [DEBUG](CommonsLogger.java:68) Entering nullPropertyVal...
      

  2.   

    weblogic 日志里的内容####<2011-11-2 下午12时33分57秒 CST> <Error> <HTTP> <thinkpad-PC> <AdminServer> <[ACTIVE] ExecuteThread: '20' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1320208437459> <BEA-101020> <[ServletContext@22311543[app:WebContent module:WebContent path: spec-version:2.5]] Servlet failed with Exception
    java.lang.IllegalStateException: Response already committed
    at weblogic.servlet.internal.ServletResponseImpl.objectIfCommitted(ServletResponseImpl.java:1608)
    at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:626)
    at org.apache.struts2.dispatcher.Dispatcher.sendError(Dispatcher.java:819)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:519)
    at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

      

  3.   

    action 里的代码public class MissionAction extends ActionSupport { private static final long serialVersionUID = 1L;

    @SuppressWarnings("unused")
    private MissionBiz missionBiz;

    private List list;

    private String test; public void setMissionBiz(MissionBiz missionBiz) { this.missionBiz = missionBiz;
    } public String excute() {
    try {
    // this.getRootMap();
    System.out.println("<<<<<<<<<<<<<");
    test = "xxxxxxxxx";
    System.out.println(test+">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
    return null;
    } catch(Exception e) {
    e.printStackTrace();
    return null;
    }

    } public List getList() {
    return list;
    } public void setList(List list) {
    this.list = list;
    } public String getTest() {
    return test;
    } public void setTest(String test) {
    this.test = test;
    }
    }