0
我試圖從下面的方法立即得到響應,並繼續進行其餘的過程。但我沒有看到我的返回值「TestAync」隨時。您可以請建議如何從下面的調用中檢索(客戶端代碼)響應。Jersey Rest異步響應
這是我正在打的客戶電話,感謝您的幫助。 未來響應= ClientBuilder.newClient()。target(「http://localhost:8080/testasync/test/async/test5」).request()。async()。get();
@GET
@Path("async/{echo}")
public String asyncEcho(@PathParam("echo") final String echo, @Suspended final AsyncResponse ar) {
TASK_EXECUTOR.submit(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(SLEEP_TIME_IN_MILLIS);
} catch (InterruptedException ex) {
ar.cancel();
}
ar.resume(echo);
}
});
return "TestAysnc";
}
謝謝米哈爾,有沒有什麼辦法可以實現使用休息異步並返回值,然後繼續執行其餘任務。我嘗試了很多選擇,但最終爲任務創建了Executor線程並將值(ACK)返回給客戶端。 (這完全是我自定義的異步方法實現)。請讓我知道這是否是一個推薦選項。 – Suresh