private void endHereCommon() throws BeanException {
   // save EJB object handle in property
   if (ejb != null) {
     try {
       hPubAccessHandle = ejb.getHandle();
     } catch (Exception e) {
       String errMsg =
           (new Date(System.currentTimeMillis())).toString()
               + " HPS5955 "
               + this.getClass().getName()
               + ": ejb.getHandle(), ejb="
               + ejb
               + ": "
               + e.getClass().getName()
               + ": "
               + e.getMessage();
       System.err.println(errMsg);
       if (tracing == true) {
         traceArgs[0] = this;
         traceArgs[1] = errMsg;
         try {
           traceMethod.invoke(o, traceArgs);
         } catch (Exception x) {
         }
       }
       throw new BeanException(errMsg);
     }
   }
   // save ejb accessHandle and hpubLinkKey in HttpSession
   if ((oHttpServletRequest != null) && (outputProps != null)) {
     // a new HPubEjb2HttpSessionBindingListener object containing the ejb access
     // handle and hPubLinkKey for the connection is bound to the session using
     // a prefix and the ending connection state of the IO just processed.
     // This hPubLinkKey uniquely identifies the connection associated with the
     // IO chain for that HP Runtime JVM.
     // The ejb access handle is contained within the HPubEjb2HttpSessionBindingListener
     // object so that an ejb remove can be issued in the case where a session
     // timeout or session invalidation occurs for an incomplete IO chain.
     HttpSession theWebsession = oHttpServletRequest.getSession(true);
     if (theWebsession != null) {
       synchronized (theWebsession) {
         try {
           String theKey = KEY_WEBCONN + outputProps.getHPubEndChainName();
           hPubLinkKey = outputProps.getHPubLinkKey();
           theWebsession.setAttribute(
               theKey, new HPubEJB2HttpSessionBindingListener(hPubAccessHandle, hPubLinkKey));
           if (tracing == true) {
             traceArgs[0] = this;
             traceArgs[1] =
                 "theWebsession.setAttribute("
                     + theKey
                     + ",new HPubEJB2HttpSessionBindingListener("
                     + hPubAccessHandle
                     + ", "
                     + hPubLinkKey
                     + "))";
             try {
               traceMethod.invoke(o, traceArgs);
             } catch (Exception x) {
             }
           }
           if (auditing == true) {
             auditArgs[0] =
                 "\n---\nIN:"
                     + this.getClass().getName()
                     + " "
                     + theKey
                     + " "
                     + hPubAccessHandle
                     + " "
                     + hPubLinkKey
                     + " "
                     + theWebsession.getId();
             auditArgs[1] = theWebsession;
             try {
               auditMethod.invoke(o, auditArgs);
             } catch (Exception x) {
             }
           }
         } catch (Exception e) {
           hPubLinkKey = null; // set to null to force following error logic
         }
       }
     }
     // if an error occurred throw an exception to cause ejb remove to be issued.
     if ((theWebsession == null) || (hPubLinkKey == null)) {
       String errMsg =
           (new Date(System.currentTimeMillis())).toString()
               + " HPS5956 "
               + this.getClass().getName()
               + ": HttpServletRequest.getSession(true), hPubLinkKey="
               + hPubLinkKey;
       System.err.println(errMsg);
       if (tracing == true) {
         traceArgs[0] = this;
         traceArgs[1] = errMsg;
         try {
           traceMethod.invoke(o, traceArgs);
         } catch (Exception x) {
         }
       }
       throw new BeanException(errMsg);
     }
   }
   // send Event to User indicating that the Query request is complete
   RequestCompleteEvent hPubEvent = new RequestCompleteEvent(this);
   fireHPubReqCompleteEvent(hPubEvent);
   return;
 }
예제 #2
0
  /**
   * 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());
    }
  }
  /** all processing methods end up here */
  private void startHereCommon() throws BeanException {
    // try to get the linkKey if already set in input properties
    try {
      hPubLinkKey = inputProps.getHPubLinkKey();
    } catch (Exception e) {
    }

    // if running in Web environment and either the ejb access handle or
    // the linkKey are null, try to get them from the HttpSession
    if (oHttpServletRequest != null) {
      HttpSession theWebsession = oHttpServletRequest.getSession(false);
      if (theWebsession != null) {
        synchronized (theWebsession) {
          try {
            if (tracing == true) {
              traceArgs[0] = this;
              traceArgs[1] = "HttpSession.getId()=" + theWebsession.getId();
              try {
                traceMethod.invoke(o, traceArgs);
              } catch (Exception x) {
              }
            }
            String theKey = KEY_WEBCONN + inputProps.getHPubStartChainName();
            // if linkKey or access handle is null try to get it from Websession
            HPubEJB2HttpSessionBindingListener sbl =
                (HPubEJB2HttpSessionBindingListener) theWebsession.getAttribute(theKey);
            if ((hPubLinkKey == null) && (sbl != null)) {
              hPubLinkKey = sbl.getLinkKey();
              if (tracing == true) {
                traceArgs[0] = this;
                traceArgs[1] = "HttpSession.getAttribute(hPubLinkKey)=" + hPubLinkKey;
                try {
                  traceMethod.invoke(o, traceArgs);
                } catch (Exception x) {
                }
              }
              inputProps.setHPubLinkKey(hPubLinkKey);
            }
            if ((hPubAccessHandle == null) && (sbl != null)) {
              hPubAccessHandle = sbl.getEjbHandle();
              if (tracing == true) {
                traceArgs[0] = this;
                traceArgs[1] = "HttpSession.getAttribute(hPubAccessHandle)=" + hPubAccessHandle;
                try {
                  traceMethod.invoke(o, traceArgs);
                } catch (Exception x) {
                }
              }
            }
            // set the ejb handle to null before removing the Session Binding
            // Listener object
            if (auditing == true) {
              if (sbl != null)
                auditArgs[0] =
                    "\n---\nOUT:"
                        + this.getClass().getName()
                        + " "
                        + theKey
                        + " "
                        + hPubAccessHandle
                        + " "
                        + hPubLinkKey
                        + " "
                        + theWebsession.getId();
              else // error - object not found in HttpSession
              auditArgs[0] =
                    "\n---\nERR:"
                        + this.getClass().getName()
                        + " "
                        + theKey
                        + " "
                        + theWebsession.getId();

              auditArgs[1] = theWebsession;
              try {
                auditMethod.invoke(o, auditArgs);
              } catch (Exception x) {
              }
            }
            if (sbl != null) sbl.setEjbHandle(null);
            theWebsession.removeAttribute(theKey);
          } catch (IllegalStateException e) {
          }
        }
      }
    }
    // if either of required properties are still null then the ejb cannot
    // be accessed - throw an exception.
    if ((hPubAccessHandle == null) || (hPubLinkKey == null)) {
      String errMsg =
          (new Date(System.currentTimeMillis())).toString()
              + " HPS5951 "
              + this.getClass().getName()
              + ": hPubAccessHandle==null || hPubLinkKey==null";
      System.err.println(errMsg);
      if (tracing == true) {
        traceArgs[0] = this;
        traceArgs[1] = errMsg;
        try {
          traceMethod.invoke(o, traceArgs);
        } catch (Exception x) {
        }
      }
      throw new BeanException(errMsg);
    } else {
      if (tracing == true) {
        traceArgs[0] = this;
        traceArgs[1] = "hPubAccessHandle=" + hPubAccessHandle + ",hPubLinkKey=" + hPubLinkKey;
        try {
          traceMethod.invoke(o, traceArgs);
        } catch (Exception x) {
        }
      }
    }

    // get the EJB object from the handle
    try {
      ejb =
          (com.ibm.HostPublisher.EJB.HPubEJB2)
              javax.rmi.PortableRemoteObject.narrow(
                  hPubAccessHandle.getEJBObject(), com.ibm.HostPublisher.EJB.HPubEJB2.class);
    } catch (Exception e) {
      String errMsg =
          (new Date(System.currentTimeMillis())).toString()
              + " HPS5952 "
              + this.getClass().getName()
              + ": getEJBObject(): "
              + e.getClass().getName()
              + ": "
              + e.getMessage();
      System.err.println(errMsg);
      if (tracing == true) {
        traceArgs[0] = this;
        traceArgs[1] = errMsg;
        try {
          traceMethod.invoke(o, traceArgs);
        } catch (Exception x) {
        }
      }
      throw new BeanException(errMsg);
    }
    // if ejb handle, go invoke the HPubEJB's main business method.
    if (ejb != null) {
      try {
        outputProps = (CrownCounselIndexGetList_Properties) ejb.processIO(inputProps);
        inputProps = outputProps;
        inputProps.setInitialCall(false);
      } catch (Exception e) {
        String errMsg =
            (new Date(System.currentTimeMillis())).toString()
                + " HPS5953 "
                + this.getClass().getName()
                + ": processIO("
                + inputProps.getClass().getName()
                + "): "
                + e.getClass().getName()
                + ": "
                + e.getMessage();
        System.err.println(errMsg);
        if (tracing == true) {
          traceArgs[0] = this;
          traceArgs[1] = errMsg;
          try {
            traceMethod.invoke(o, traceArgs);
          } catch (Exception x) {
          }
        }
        throw new BeanException(errMsg);
      }
    }
    endHereCommon();
    return;
  }
  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");
    }
  }