错误日志:
[java] 2014-09-26 10:12:17,031 (http-bio-0.0.0.0-8443-exec-5) [ ControlServlet.java:233:ERROR] [java] ---- exception report ---------------------------------------------------------- [java] Error in request handler: [java] Exception: org.ofbiz.widget.screen.ScreenRenderException [java] Message: Error rendering screen [component://common/widget/CommonScreens.xml#login]: java.lang.IllegalArgumentException: Could not find screen with name [main-decorator] in class resource [component://practice/widget/PracticeScreens.xml] (Could not find screen with name [main-decorator] in class resource [component://practice/widget/PracticeScreens.xml]) [java] ---- cause --------------------------------------------------------------------- [java] Exception: java.lang.IllegalArgumentException [java] Message: Could not find screen with name [main-decorator] in class resource [component://practice/widget/PracticeScreens.xml] [java] ---- stack trace --------------------------------------------------------------- [java] java.lang.IllegalArgumentException: Could not find screen with name [main-decorator] in class resource [component://practice/widget/PracticeScreens.xml] [java] org.ofbiz.widget.screen.ScreenFactory.getScreenFromLocation(ScreenFactory.java:103) [java] org.ofbiz.widget.screen.ScreenFactory.renderReferencedScreen(ScreenFactory.java:195) [java] org.ofbiz.widget.screen.ModelScreenWidget$DecoratorScreen.renderWidgetString(ModelScreenWidget.java:585) [java] org.ofbiz.widget.screen.ModelScreenWidget.renderSubWidgetsString(ModelScreenWidget.java:104) [java] org.ofbiz.widget.screen.ModelScreenWidget$Section.renderWidgetString(ModelScreenWidget.java:191) [java] org.ofbiz.widget.screen.ModelScreen.renderScreenString(ModelScreen.java:396) [java] org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:135) [java] org.ofbiz.widget.screen.ScreenRenderer.render(ScreenRenderer.java:97) [java] org.ofbiz.widget.screen.ScreenWidgetViewHandler.render(ScreenWidgetViewHandler.java:101) [java] org.ofbiz.webapp.control.RequestHandler.renderView(RequestHandler.java:868) [java] org.ofbiz.webapp.control.RequestHandler.doRequest(RequestHandler.java:582) [java] org.ofbiz.webapp.control.ControlServlet.doGet(ControlServlet.java:224) [java] javax.servlet.http.HttpServlet.service(HttpServlet.java:620) [java] javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [java] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [java] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [java] org.ofbiz.webapp.control.ContextFilter.doFilter(ContextFilter.java:337) [java] org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [java] org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [java] org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) [java] org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) [java] org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) [java] org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [java] org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) [java] org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) [java] org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) [java] org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [java] org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070) [java] org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611) [java] org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) [java] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [java] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [java] org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [java] java.lang.Thread.run(Thread.java:662) [java] --------------------------------------------------------------------------------
解决问题:在practice/widget/PracticeScreens.xml中添加如下配置即可
<screen name="main-decorator"> <section> <actions> <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> <property-map resource="PracticeUiLabels" map-name="uiLabelMap" global="true"/> <set field="layoutSettings.companyName" from-field="uiLabelMap.PracticeCompanyName" global="true"/> <set field="layoutSettings.label1" from-field="uiLabelMap.PracticeApplication" global="true"/> <set field="layoutSettings.label1" from-field="uiLabelMap.PracticeApplication" global="true"/> <set field="activeApp" value="practice" global="true"/> <set field="applicationMenuName" value="PracticeAppBar" global="true"/> <set field="applicationMenuLocation" value="component://practice/widget/PracticeMenus.xml" global="true"/> </actions> <widgets> <include-screen name="GlobalDecorator" location="component://common/widget/CommonScreens.xml"/> </widgets> </section> </screen>