簡體   English   中英

RESTful Web服務可以從子線程返回POST響應嗎?

[英]Can a RESTful Web Service return a POST Response from Child Thread?

目前這是我對傳入的POST請求的實現。 處理由子線程處理,但必須將響應返回到頂層以發送響應。

@Post("json")
public String POSTMessage(String myJsonString) throws Exception {
    JSONObject msg = (JSONObject) new JSONParser().parse(myJsonString);
    ClassA Client = new ClassA();
    Server.client_list.add(Client);

    return Client.processMSG(msg);
}

ClassA Processing構建JSON響應並將其返回到頂級。 Child Thread有沒有辦法在Restful架構中發回響應? 換句話說,POSTmessage函數是否需要返回值,或者Child Thread是否可以通過某種方式響應,因為POSTMessage可以返回監聽端口。

您可以使用異步響應 ,例如:

@Post("json")
public void POSTMessage(String myJsonString, @Suspended final AsyncResponse asyncResponse) throws Exception {
    new Thread(new Runnable() {
        @Override
        public void run() {
           JSONObject msg = (JSONObject) new JSONParser().parse(myJsonString);
           ClassA client = new ClassA();                
           asyncResponse.resume(client.processMSG(msg));
        }
    }).start();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM