2016-07-11 7 views
1

Derzeit ist dies die Implementierung, die ich für die eingehende POST-Anfrage habe. Die Verarbeitung wird von einem untergeordneten Thread behandelt, aber die Antwort muss an die oberste Ebene zurückgegeben werden, um eine Antwort zu senden.Kann ein RESTful-Webdienst eine POST-Antwort vom untergeordneten Thread zurückgeben?

ClassA-Verarbeitung erstellt eine JSON-Antwort und gibt diese an die oberste Ebene zurück. Gibt es eine Möglichkeit, wie der Child Thread die Antwort in einer Restful-Architektur zurücksenden könnte? Mit anderen Worten, muss die POSTmessage-Funktion den Wert zurückgeben, oder gibt es eine Möglichkeit, wie ein untergeordneter Thread antworten kann, da die POSTMessage wieder auf einen Port zugreifen kann.

Antwort

0

Sie können asynchronous response verwenden, wie:

@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(); 
}