package com.tenwa.workflow; import com.amarsoft.are.ARE; import com.amarsoft.awe.RuntimeContext; import com.amarsoft.awe.util.JavaMethodReturn; import com.amarsoft.context.ASUser; import java.io.IOException; import java.io.PrintWriter; import java.net.URLDecoder; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class RewriteRunJavaMethodServlet extends HttpServlet{ private static final long serialVersionUID = 1L; private String sDataSource = "als"; public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request, response); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { JavaMethodReturn ret = new JavaMethodReturn(); response.setContentType("text/html; charset=GBK"); response.setHeader("Cache-Control", "no-store"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0L); response.setCharacterEncoding("utf-8"); HttpSession session = request.getSession(); Map model =QueryUtil.getRequestParameterMapByAjax(request); Map modelput=new HashMap(); modelput.putAll(model); PrintWriter out = response.getWriter(); RuntimeContext CurARC = (RuntimeContext)session.getAttribute("CurARC"); if (CurARC == null) { ret.setCode("AWES0003"); ret.setResult("/Frame/page/sys/SessionExpire.jsp"); out.print(ret.getReturnText()); out.flush(); out.close(); return; } String sClassName = request.getParameter("ClassName"); String sMethodName = request.getParameter("MethodName"); String sArgs = request.getParameter("Args"); if (sArgs == null) sArgs = ""; else { sArgs = URLDecoder.decode(sArgs, "UTF-8").replace("§¨", "+").replace("§×", "%"); }String sArgsObject = request.getParameter("ArgsObject"); ASUser CurUser = CurARC.getUser(); modelput.put("userId", CurUser.getUserID()); modelput.put("request", request); if ("Sqlca".equalsIgnoreCase(sArgsObject)) { ret = RewriteJavaMethod.runSqlca(sClassName, sMethodName, sArgs, this.sDataSource, CurUser,modelput); } else if ("TransDadai".equalsIgnoreCase(sArgsObject)) { ret = RewriteJavaMethod.runTrans(sClassName, sMethodName, sArgs, CurUser,modelput); } else { ret = RewriteJavaMethod.run(sClassName, sMethodName, sArgs, CurUser,modelput); } out.print(ret.getReturnText()); out.flush(); out.close(); } public void init()throws ServletException{ super.init(); this.sDataSource = getInitParameter("DataSource"); if ((this.sDataSource == null) || ("".equals(this.sDataSource))) this.sDataSource = "als"; ARE.getLog().debug("[RED] RewriteRunJavaMethodServlet InitParameter : DataSource[" + this.sDataSource + "]"); } }