Hi, I tried understanding the AsyncMiddleManServlet from example at this - https://groups.google.com/g/dropwizard-user/c/DK3LsgbbU8Y?pli=1.
But how can this work for my case? I mean how can I use ContentTransformer to respond to the original request? Best, Aniruddha ======== ᐧ On Wed, Jul 7, 2021 at 9:58 PM Olivier Lamy <[email protected]> wrote: > Hi > You should have a look at AsyncMiddleManServlet. It's in jetty-proxy > module. > > > > > > On Thu, Jul 8, 2021 at 2:45 PM Aniruddha Tekade via jetty-users < > [email protected]> wrote: > >> Hi All, >> >> I am trying to build a response for a request that is saved in hashmap. >> But I am not sure how can I solve this problem - should I use async >> mechanism or multithreading and how? >> >> >> - Request A is sent to a doGET() method to be served but doGET makes >> some changes and makes another request B to the outside server. >> - I save the request with its UUID request ID into a hashmap >> - The outside server sends 200 OK back for new request B. >> - The outside server then makes a POST request which has data to be >> sent back to request A. >> >> But I am super confused about how can I send this data with a response >> back to request A as a response? >> Can I use some kind of asynchronous mechanism or multithreading use? But >> I am super struggling with this? Even simplifying this approach would be >> great. But I must send the data received in the POST request back to >> request A. Please advise on how to progress on this. >> >> My handler class code is as follows - >> >> Map<String, HttpServletRequest> requestLookup = new HashMap<>(); >> >> public void handle(String target, Request jettyReq, HttpServletRequest >> request, HttpServletResponse response) { >> >> // Redirect API control based on HTTP method type >> if (request.getMethod().equals(constGetRequest)) { >> getObject(jettyReq, request, response); >> } >> if (request.getMethod().equals(constPostRequest)) { >> writeGetObjectResponse(jettyReq, request, response); >> } >> jettyReq.setHandled(true); >> } >> >> public void doGET(Request jettyReq, HttpServletRequest request, >> HttpServletResponse response) { >> requestLookup.put(xRequestId, request); >> >> String requestURI = request.getRequestURI(); >> String[] strs = requestURI.split("/"); >> for (String str : strs) { >> System.out.println("item:" + str); >> } >> String object_key; >> String bucket_name; >> String lambdaFunc; >> if (strs.length <= 2) { >> try { >> throw new Exception("Can not get bucket and object key >> info"); >> } catch (Exception e) { >> e.printStackTrace(); >> } >> } >> bucket_name = strs[1]; >> System.out.println("Handler -- bucketName received = " + >> bucket_name); >> >> // Redis class contains the mapping of bucket_name and function name >> to be executed in the Python server >> >> lambdaFunc = redis.getFuncFromRedis(bucket_name); // example >> function - "".upper() >> >> object_key = requestURI.substring(requestURI.indexOf(bucket_name) + >> bucket_name.length() + 1); >> System.out.println("objectKey = " + object_key); >> S3ObjectReader getObject = new S3ObjectReader(); >> response.setContentType("text/html;charset=utf-8"); >> response.setStatus(HttpServletResponse.SC_OK); >> >> List<String> result = >> getObject.printOriginalObjectContent(bucket_name,object_key); >> System.out.println("Print original object content:"); >> for (String s : result) { >> System.out.println(s); >> } >> >> System.out.println("Print transformed object content:"); >> LambdaFunctionConnector connectLambdaFunc = new >> LambdaFunctionConnector(); >> >> >> connectLambdaFunc.sendRequest(lambdaFunc,result); >> } >> >> public void doPOST(Request jettyReq, HttpServletRequest req, >> HttpServletResponse res) { >> // retrieve request from the lookup table >> >> String requestID = request.getHeader("X-Request-ID"); >> HttpServletRequest originalRequest = requestLookup.get(requestID); >> >> } >> >> >> - aniruddha >> ========= >> ᐧ >> _______________________________________________ >> jetty-users mailing list >> [email protected] >> To unsubscribe from this list, visit >> https://www.eclipse.org/mailman/listinfo/jetty-users >> > > > -- > Olivier > _______________________________________________ > jetty-users mailing list > [email protected] > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list [email protected] To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/jetty-users
