private void callMethodForParam(HttpServletRequest req, HttpServletResponse resp) throws Exception { String pinfo = req.getPathInfo(); int pos = pinfo.indexOf('.'); String cname = pinfo.substring(1, pos).replace('/', '.'); String mname = pinfo.substring(pos + 1); int argc = 0; while (req.getParameter("a" + argc) != null) argc++; Class clazz = Class.forName(cname); Method method = null; Method[] methods = clazz.getMethods(); for (int i = 0; i < methods.length; i++) { if (methods[i].getParameterTypes().length == argc && mname.equals(methods[i].getName())) { method = methods[i]; } } if (method == null) { throw new RuntimeException("Not found method " + mname + "(" + argc + "args)"); } Object[] args = new Object[argc]; Class[] types = method.getParameterTypes(); if (types != null) { for (int i = 0; i < types.length; i++) { args[i] = toArg(types[i], req.getParameter("a" + i)); } } Object result = method.invoke(null, args); resp.setContentType(MIME_JSON); OutputStream out = resp.getOutputStream(); out.write("{\"result\":".getBytes("UTF-8")); new JSONSerializer().serialize(result, out); out.write("}".getBytes("UTF-8")); out.flush(); }
/** * Processes the request coming to the servlet and grabs the attributes set by the servlet and * uses them to fire off pre-determined methods set in the setupActionMethods function of the * servlet. * * @param request the http request coming from the browser. * @param response the http response going to the browser. * @throws javax.servlet.ServletException * @throws java.io.IOException */ protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (!actionInitialized) { LogController.write(this, "This dispatcher servlet is not initialized properly!"); return; } if (actionTag == null) { LogController.write(this, "There is no action attribute tag name!"); return; } HttpSession httpSession = request.getSession(); UserSession userSession = (UserSession) httpSession.getAttribute("user_session"); if (userSession == null) { LogController.write(this, "User session is no longer available in this http session."); userSession = new UserSession(); // We always want a user session though... httpSession.setAttribute("user_session", userSession); } String action = (String) request.getAttribute(actionTag); try { if (action == null) { // There is no action attribute specified, check parameters. String external_action = (String) request.getParameter(actionTag); if (external_action != null) { Method method = externalActions.get(external_action); if (method != null) { LogController.write(this, "Performing external action: " + external_action); method.invoke(this, new Object[] {userSession, request, response}); } else { if (defaultExternalMethod != null) { LogController.write(this, "Performing default external action."); defaultExternalMethod.invoke(this, new Object[] {userSession, request, response}); } else { LogController.write(this, "Unable to perform default external action."); } } } else { if (defaultExternalMethod != null) { LogController.write(this, "Performing default external action."); defaultExternalMethod.invoke(this, new Object[] {userSession, request, response}); } else { LogController.write(this, "Unable to perform default external action."); } } } else { Method method = internalActions.get(action); if (method != null) { LogController.write(this, "Performing internal action: " + action); method.invoke(this, new Object[] {userSession, request, response}); } else { if (defaultInternalMethod != null) { LogController.write(this, "Performing default internal action."); defaultInternalMethod.invoke(this, new Object[] {userSession, request, response}); } else { LogController.write(this, "Unable to perform default internal action."); } } request.removeAttribute("application_action"); } } catch (IllegalAccessException accessEx) { LogController.write(this, "Exception while processing request: " + accessEx.getMessage()); } catch (InvocationTargetException invokeEx) { LogController.write(this, "Exception while processing request: " + invokeEx.toString()); invokeEx.printStackTrace(); } catch (Exception ex) { LogController.write(this, "Unknown exception: " + ex.toString()); } }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String jsppath = "rhccinvoice"; String year = ""; String spin = ""; String frn = ""; String invid = ""; String invno = ""; String spinnm = ""; String frame = ""; String user = ""; Vector vector = new Vector(); HttpSession session = request.getSession(false); if (session == null) { jsppath = "login"; USFEnv.getLog().writeCrit("RhccInvviewServlet: Inside Session is null", this, null); USFEnv.getLog() .writeWarn("RhccInvviewServlet: Inside frame session calling JSP Login", this, null); includeJSP(request, response, jsppath, "Login"); } else { jsppath = "rhccinvoice"; frame = request.getParameter("frame"); user = (String) session.getValue("cuid"); USFEnv.getLog() .writeDebug("RhccInvviewServlet: Inside doPost Login CUID is: " + user, this, null); USFEnv.getLog() .writeWarn("RhccInvviewServlet: Inside InvreconServlet Frame is:" + frame, this, null); if (frame.equals("iview_frn")) { boolean discountview_flag = false; if ((request.getParameter("idiscountview") != null) && (request.getParameter("idiscountview").equals("TRUE"))) { year = request.getParameter("iyear"); session.putValue("Iyear", year); discountview_flag = true; } if ((discountview_flag) || (session.getValue("Iyear") != null)) { if ((request.getParameter("ifrn")) != null) { frn = request.getParameter("ifrn"); USFEnv.getLog().writeDebug("RhccInvviewServlet: FRN Value :" + frn, this, null); if (!(discountview_flag)) { year = (String) session.getValue("Iyear"); } Vector frninvnos = new Vector(); Vector invnolist = new Vector(); Vector invpending = new Vector(); boolean frn_flag = false; String frnerrmsg = ""; try { invviewEJBean.connect(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame rhcciview_frn connected to RhccInvviewBean", this, null); if (discountview_flag) { frn_flag = true; } else { frn_flag = invviewEJBean.validateFRN(frn, year); USFEnv.getLog() .writeWarn( "RhccInvviewServlet:Inside frame rhcciview_frn data from validateFRN" + frn_flag, this, null); } if (frn_flag) { frninvnos = invviewEJBean.getFrninvnos(year, frn); USFEnv.getLog().writeWarn("ouside the block", this, null); invviewEJBean.release(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame Rhcciview_frn released RhccInvviewBean", this, null); } else { USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn Inside the else block", this, null); frnerrmsg = invviewEJBean.setErrmsg(); invviewEJBean.release(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn released RhccInvviewBean" + frnerrmsg, this, null); invgenEJBean.connect(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn connected to RhccInvgenBean" + invnolist, this, null); invnolist = invgenEJBean.getRhccInvnos(year); USFEnv.getLog().writeWarn("outside of this " + invnolist, this, null); invgenEJBean.release(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn released RhccInvgenBean", this, null); } USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn Inside the else block--2--", this, null); if (discountview_flag) { USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside -3---" + discountview_flag, this, null); USFEnv.getLog().writeWarn("RhccInvviewServlet: Inside -3---" + frn, this, null); USFEnv.getLog().writeWarn("RhccInvviewServlet: Inside -3---" + year, this, null); session.putValue("Ifrn", frn); invgenEJBean.connect(); USFEnv.getLog() .writeWarn("RhccInvviewServlet: Inside frame----88 " + frn, this, null); invpending = invgenEJBean.getRhccInvpending(null, year, frn); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn connected to InvgenBean", this, null); invgenEJBean.release(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn released InvgenBean", this, null); } } catch (RemoteException e) { USFEnv.getLog().writeCrit("I m here", this, null); USFEnv.getLog() .writeCrit( "RhccInvviewServlet: Inside Remote Exception of getFrninvnos ", this, null); } if (frn_flag) { USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn calling JSP RhccIInvviewfrn" + frn_flag, this, null); request.setAttribute("frn", frn); request.setAttribute("frninv", frninvnos); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn calling JSP RhccIInvviewfrn", this, null); if (discountview_flag) { if ((request.getParameter("invrejn") != null) && (request.getParameter("invrejn").equals("true"))) request.setAttribute("invrejn", "true"); request.setAttribute("frnpend", invpending); includeJSP(request, response, jsppath, "RhccIDiscountview"); } else { USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn calling JSP RhccIInvviewfrn inside else", this, null); includeJSP(request, response, jsppath, "RhccIInvviewfrn"); } } else { request.setAttribute("invnolist", invnolist); request.setAttribute("invviewmsg", frnerrmsg); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_frn calling JSP IMenu", this, null); includeJSP(request, response, jsppath, "RhccIMenu"); } } } } if (frame.equals("iview_file")) { boolean discountview_flag = false; frn = request.getParameter("ifrn"); invid = request.getParameter("iview_no"); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_file released InvviewBean" + frn, this, null); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_file released InvviewBean" + invid, this, null); Vector invfil = new Vector(); if ((request.getParameter("idiscountview") != null) && (request.getParameter("idiscountview").equals("TRUE"))) { year = request.getParameter("iyear"); session.putValue("Iyear", year); discountview_flag = true; } if (invid != null) { if (session.getValue("Iyear") != null) { year = (String) session.getValue("Iyear"); try { invviewEJBean.connect(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_file connected to RhccInvviewBean", this, null); invno = invviewEJBean.getInvno(invid); spinnm = invviewEJBean.getSPINname(invid); invfil = invviewEJBean.getFiledetails(frn, invid, year); invviewEJBean.release(); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_file released RhccInvviewBean", this, null); } catch (RemoteException e) { USFEnv.getLog() .writeCrit("RhccInvviewServlet: Inside Remote Exception for Inv ", this, null); } } } if (discountview_flag) { request.setAttribute("vdsflag", "TRUE"); } if ((request.getParameter("invrejn") != null) && (request.getParameter("invrejn").equals("true"))) request.setAttribute("invrejn", "true"); request.setAttribute("frn", frn); request.setAttribute("invno", invno); request.setAttribute("spinnm", spinnm); request.setAttribute("invfil", invfil); USFEnv.getLog() .writeWarn( "RhccInvviewServlet: Inside frame iview_file calling JSP RhccIInvviewfil", this, null); includeJSP(request, response, jsppath, "RhccIInvviewfil"); } } } catch (Exception e) { if (invviewEJBean != null) { // calling bean release method try { invviewEJBean.release(); } catch (Exception ex) { USFEnv.getLog().writeCrit(" Exception in calling release() method ", this, e); } } USFEnv.getLog().writeCrit("RhccInvviewServlet: Inside Exception" + e, this, null); USFEnv.getLog() .writeWarn("RhccInvviewServlet: Inside Exception calling JSP Login", this, null); includeJSP(request, response, "login", "Login"); } }