private void callMethodForMultiPart(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); MultiPartMap map = new MultiPartMap(); FileItemIterator ite = new FileUpload().getItemIterator(req); while (ite.hasNext()) { FileItemStream item = ite.next(); if (item.isFormField()) { map.put(item.getFieldName(), IOUtil.streamToString(item.openStream(), "UTF-8")); } else { FileItem val = new FileItem( item.getFileName(), item.getContentType(), IOUtil.streamToBytes(item.openStream())); map.put(item.getFieldName(), val); } } Class clazz = Class.forName(cname); Class[] types = new Class[] {MultiPartMap.class}; Method method = clazz.getMethod(mname, types); if (method == null) { throw new RuntimeException("Not found method " + mname + "(Map)"); } Object result = method.invoke(null, map); resp.setContentType(MIME_HTML + ";charset=utf-8"); resp.getWriter().write(result.toString()); }
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(); }
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { httpRequestContext.set(new HttpRequestContext(this, req, resp)); String pinfo = req.getPathInfo(); if (pinfo == null) return; try { callMethodForParam(req, resp); } catch (Exception e) { e.printStackTrace(); throw new ServletException(e); } }
public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { httpRequestContext.set(new HttpRequestContext(this, req, resp)); try { String ctype = req.getContentType(); if (ctype != null) ctype = ctype.toLowerCase(); if (FileUpload.isMultipartContent(req)) { callMethodForMultiPart(req, resp); } else if (MIME_JSON.equals(ctype)) { // TODO: json-rpc } else { callMethodForParam(req, resp); } } catch (Exception e) { e.printStackTrace(); throw new ServletException(e); } }
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; }
/** 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; }
/** * Allows one to forward the following request and response using the request dispatcher. * * @param resource the resource to forward the request/response to. * @param request the http request to forward. * @param response the http response to forward. * @throws javax.servlet.ServletException * @throws java.io.IOException */ protected void forward(String resource, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { RequestDispatcher rd = request.getRequestDispatcher(resource); rd.forward(request, response); }
/** * 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"); } }