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

Reply via email to