00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 package org.openmobileis.services;
00031
00032 import java.io.IOException;
00033
00034 import javax.servlet.ServletException;
00035 import javax.servlet.http.HttpServletRequest;
00036 import javax.servlet.http.HttpServletResponse;
00037
00038 import org.openmobileis.common.util.log.*;
00039 import org.openmobileis.embedded.webserver.templates.TemplateManager;
00040 import org.openmobileis.embedded.webserver.templates.TemplateNotFoundException;
00041 import org.openmobileis.services.common.ServletTools;
00042 import org.openmobileis.services.navigation.NavigationBarManager;
00043
00044 import freemarker.template.TemplateModelRoot;
00045
00055 public abstract class TemplateService extends Service {
00056
00057 public TemplateService() {
00058 TemplateManager.getManager();
00059 }
00060
00061
00062
00063
00064
00065
00066 public void run(HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException {
00067
00068 try {
00069 TemplateModelRoot modelRoot = TemplateManager.getManager().getTemplateModelRoot();
00070 String templateName = this.runTemplate(req, res, modelRoot);
00071
00072
00073 if (this.isNavigationService()) {
00074
00075 String navBar = NavigationBarManager.getManager().getNavigationBar();
00076 TemplateManager.getManager().updateTemplateWithNavigationBarData(modelRoot, navBar);
00077 }
00078
00079 if (templateName != null) {
00080 try {
00081 TemplateManager.getManager().sendResponse(templateName, modelRoot, res);
00082 } catch (TemplateNotFoundException ex) {
00083 try {
00084 org.openmobileis.common.intl.IntlResourceManager resourceManager = org.openmobileis.common.intl.IntlResourceManager.getManager();
00085 String title = resourceManager.getLocalizedProperty("TemplateService.ExecError");
00086 String message = resourceManager.getLocalizedProperty("TemplateService.UnknownError");
00087 ServletTools.sendErrorPage(title, message, "/index", res);
00088 } catch (Exception exi) {
00089 }
00090 LogManager.traceAlert(LogServices.WEBSERVICE, "Error Template not found name :"+templateName);
00091 LogManager.traceAlert(LogServices.WEBSERVICE, ex);
00092 } catch (Exception ex) {
00093 try {
00094 org.openmobileis.common.intl.IntlResourceManager resourceManager = org.openmobileis.common.intl.IntlResourceManager.getManager();
00095 String title = resourceManager.getLocalizedProperty("TemplateService.ExecError");
00096 String message = resourceManager.getLocalizedProperty("TemplateService.UnknownError");
00097 ServletTools.sendErrorPage(title, message, "/index", res);
00098 } catch (Exception exi) {
00099 }
00100 LogManager.traceAlert(LogServices.WEBSERVICE, "Error during execution of Service"+this.getServiceUri());
00101 LogManager.traceAlert(LogServices.WEBSERVICE, ex);
00102 }
00103 }
00104 } catch (Exception ex) {
00105 LogManager.traceAlert(LogServices.WEBSERVICE, "Error during execution of Template Service"+this.getServiceUri());
00106 LogManager.traceAlert(LogServices.WEBSERVICE, ex);
00107 org.openmobileis.common.intl.IntlResourceManager resourceManager = org.openmobileis.common.intl.IntlResourceManager.getManager();
00108 String message = resourceManager.getLocalizedProperty("TemplateService.UnknownError");
00109 String title = resourceManager.getLocalizedProperty("TemplateService.Title");
00110 ServletTools.sendErrorPage(title, message, "/index", res);
00111 }
00112 }
00113
00118 public abstract String runTemplate ( HttpServletRequest req, HttpServletResponse res , TemplateModelRoot templateData) throws ServletException, IOException ;
00119
00120 }