Exemple #1
0
  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");
    }
  }