📄 workflowfactoryservlet.java
字号:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.config;import com.opensymphony.workflow.FactoryException;import com.opensymphony.workflow.loader.*;import java.io.ByteArrayInputStream;import java.io.IOException;import java.net.MalformedURLException;import java.net.URL;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/** * @author Hani Suleiman Date: Dec 17, 2004 Time: 12:21:44 PM */public class WorkflowFactoryServlet extends HttpServlet { //~ Instance fields //////////////////////////////////////////////////////// private WorkflowFactory factory; //~ Methods //////////////////////////////////////////////////////////////// public void init() throws ServletException { DefaultConfiguration config = new DefaultConfiguration(); URL url = null; String configFile = getInitParameter("config"); if (configFile != null) { try { url = new URL(configFile); } catch (MalformedURLException e) { try { url = getServletContext().getResource(configFile); } catch (MalformedURLException e1) { e1.printStackTrace(); } } } try { config.load(url); } catch (FactoryException e) { throw new ServletException("Unable to create workflow factory", e); } this.factory = config.getFactory(); } protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String command = req.getParameter("command"); String docId = req.getParameter("docId"); if ("layout".equals(command)) { Object layout = factory.getLayout(docId); if (layout != null) { resp.setContentType("text/plain"); resp.getWriter().write(layout.toString()); } } else if ("workflow".equals(command)) { try { WorkflowDescriptor descriptor = factory.getWorkflow(docId); resp.setContentType("text/xml"); descriptor.writeXML(resp.getWriter(), 0); } catch (FactoryException e) { e.printStackTrace(resp.getWriter()); resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } } protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String command = req.getParameter("command"); String docId = req.getParameter("docId"); String data = req.getParameter("data"); if ("layout".equals(command)) { factory.setLayout(docId, data.toString()); } else if ("workflow".equals(command)) { boolean replace = "true".equals(req.getParameter("replace")); try { WorkflowDescriptor descriptor = WorkflowLoader.load(new ByteArrayInputStream(data.getBytes()), false); factory.saveWorkflow(docId, descriptor, replace); } catch (Exception e) { e.printStackTrace(resp.getWriter()); resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -