⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coreevents.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + " [" + serviceName + "]: " + e.toString());            return "error";        }        if (modelService == null) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_name_not_find", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + " [" + serviceName + "]");            return "error";        }                // make the context valid; using the makeValid method from ModelService        Map serviceContext = new HashMap();        Iterator ci = modelService.getInParamNames().iterator();        while (ci.hasNext()) {            String name = (String) ci.next();            // don't include userLogin, that's taken care of below            if ("userLogin".equals(name)) continue;            // don't include locale, that is also taken care of below            if ("locale".equals(name)) continue;                        Object value = request.getParameter(name);            // if the parameter wasn't passed and no other value found, don't pass on the null            if (value == null) {                value = request.getAttribute(name);            }             if (value == null) {                value = request.getSession().getAttribute(name);            }            if (value == null) {                // still null, give up for this one                continue;            }                        if (value instanceof String && ((String) value).length() == 0) {                // interpreting empty fields as null values for each in back end handling...                value = null;            }            // set even if null so that values will get nulled in the db later on            serviceContext.put(name, value);        }             serviceContext = modelService.makeValid(serviceContext, ModelService.IN_PARAM, true, null, locale);                if (userLogin != null) {            serviceContext.put("userLogin", userLogin);                                     }                if (locale != null) {            serviceContext.put("locale", locale);        }                        if (!modelService.export && !security.hasPermission("SERVICE_INVOKE_ANY", request.getSession())) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.not_authorized_to_call", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg);            return "error";        }                // some conversions        if (serviceTime != null && serviceTime.length() > 0) {                        try {                        Timestamp ts1 = Timestamp.valueOf(serviceTime);                startTime = ts1.getTime();            } catch (IllegalArgumentException e) {                try {                                            startTime = Long.parseLong(serviceTime);                                    } catch (NumberFormatException nfe) {                    String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.invalid_format_time", locale);                    errorBuf.append("<li>" + errMsg);                }            }            if (startTime < (new Date()).getTime()) {                String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_time_already_passed", locale);                errorBuf.append("<li>" + errMsg);            }        }        if (serviceEndTime != null && serviceEndTime.length() > 0) {                        try {                        Timestamp ts1 = Timestamp.valueOf(serviceEndTime);                endTime = ts1.getTime();            } catch (IllegalArgumentException e) {                try {                                            endTime = Long.parseLong(serviceTime);                } catch (NumberFormatException nfe) {                    String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.invalid_format_time", locale);                    errorBuf.append("<li>" + errMsg);                }            }            if (endTime < (new Date()).getTime()) {                String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_time_already_passed", locale);                errorBuf.append("<li>" + errMsg);            }        }        if (serviceIntr != null && serviceIntr.length() > 0) {            try {                interval = Integer.parseInt(serviceIntr);            } catch (NumberFormatException nfe) {                String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.invalid_format_interval", locale);                errorBuf.append("<li>" + errMsg);            }        }        if (serviceCnt != null && serviceCnt.length() > 0) {            try {                count = Integer.parseInt(serviceCnt);            } catch (NumberFormatException nfe) {                String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.invalid_format_count", locale);                errorBuf.append("<li>" + errMsg);            }        }        if (serviceFreq != null && serviceFreq.length() > 0) {            int parsedValue = 0;            try {                parsedValue = Integer.parseInt(serviceFreq);                if (parsedValue > 0 && parsedValue < 8)                    frequency = parsedValue;            } catch (NumberFormatException nfe) {                parsedValue = 0;            }            if (parsedValue == 0) {                if (!freqMap.containsKey(serviceFreq.toUpperCase())) {                    String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.invalid_format_frequency", locale);                    errorBuf.append("<li>" + errMsg);                } else {                    frequency = ((Integer) freqMap.get(serviceFreq.toUpperCase())).intValue();                }            }        }        if (retryCnt != null && retryCnt.length() > 0) {            int parsedValue = -2;            try {                parsedValue = Integer.parseInt(retryCnt);            } catch (NumberFormatException e) {                parsedValue = -2;            }            if (parsedValue > -2) {                maxRetry = parsedValue;            } else {                maxRetry = modelService.maxRetry;            }        } else {            maxRetry = modelService.maxRetry;        }        // return the errors        if (errorBuf.length() > 0) {            request.setAttribute("_ERROR_MESSAGE_", errorBuf.toString());            return "error";        }                              // schedule service        try {            dispatcher.schedule(poolName, serviceName, serviceContext, startTime, frequency, interval, count, endTime, maxRetry);        } catch (GenericServiceException e) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_dispatcher_exception", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + e.getMessage());            return "error";        }        String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_scheduled", locale);        request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg);        return "success";    }    public static ServiceEventHandler seh = new ServiceEventHandler();    /**     * Run a service.     *  Request Parameters which are used for this event:     *  SERVICE_NAME      - Name of the service to invoke     *     * @param request HttpServletRequest     * @param response HttpServletResponse     * @return Response code string     */    public static String runService(HttpServletRequest request, HttpServletResponse response) {        // get the mode and service name         String serviceName = request.getParameter("serviceName");        String mode = request.getParameter("mode");        Locale locale = UtilHttp.getLocale(request);                if (UtilValidate.isEmpty(serviceName)) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.must_specify_service_name", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg);            return "error";        }        if (UtilValidate.isEmpty(mode)) {            mode = "sync";        }                // now do a security check                Security security = (Security) request.getAttribute("security");        LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");                //lookup the service definition to see if this service is externally available, if not require the SERVICE_INVOKE_ANY permission        ModelService modelService = null;        try {            modelService = dispatcher.getDispatchContext().getModelService(serviceName);        } catch (GenericServiceException e) {            Debug.logError(e, "Error looking up ModelService for serviceName [" + serviceName + "]", module);            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.error_modelservice_for_srv_name", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + "[" + serviceName + "]: " + e.toString());            return "error";        }        if (modelService == null) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_name_not_find", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + "[" + serviceName + "]");            return "error";        }        if (!modelService.export && !security.hasPermission("SERVICE_INVOKE_ANY", request.getSession())) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.not_authorized_to_call", locale);            request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + ".");            return "error";        }                Debug.logInfo("Running service named [" + serviceName + "] from event with mode [" + mode + "]", module);                // call the service via the ServiceEventHandler which         // adapts an event to a service.        try {            return seh.invoke(mode, serviceName, request, response);        } catch (EventHandlerException e) {            String errMsg = UtilProperties.getMessage(CoreEvents.err_resource, "coreEvents.service_eventhandler_exception", locale);                                              request.setAttribute("_ERROR_MESSAGE_", "<li>" + errMsg + ": " + e.getMessage());            return "error";        }    }        public static String streamFile(HttpServletRequest request, HttpServletResponse response) {        //RequestHandler rh = (RequestHandler) request.getAttribute("_REQUEST_HANDLER_");        String filePath = RequestHandler.getNextPageUri(request.getPathInfo());        //String fileName = filePath.substring(filePath.lastIndexOf("/")+1);                // load the file        File file = new File(filePath);        if (file.exists()) {            Long longLen = new Long(file.length());            int length = longLen.intValue();            try {                FileInputStream fis = new FileInputStream(file);                                                UtilHttp.streamContentToBrowser(response, fis, length, null);                fis.close();                            } catch (FileNotFoundException e) {                Debug.logError(e, module);                return "error";            } catch (IOException e) {                Debug.logError(e, module);                return "error";            }        }                                return null;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -