さらに進む前に、メソッドを呼び出して、非同期 HTTP REST 呼び出しをトリガーする (後で別のエンドポイントにステータスを送信する) 状況があります。エンドポイントに応答が返されるまでメソッドを待機させ、取得したステータスを確認してさらに続行します。Javaで実行可能なソリューションを探しています。擬似コードまたは実装が役立ちます
同様のケースを見た@非同期Java呼び出しのグループを待機する軽量の方法ですが、実装が簡単かどうかについてはあまり考えていません。
実装の詳細
以下のように非同期応答を処理するための JAX-RS エンドポイントがあります。
@POST
@Path("/status")
@Consumes("application/xml")
public Response processConfigStatus(@Context UriInfo uriInfo, ConfigStatus configStatus)
{
// process Status got from the async REST call
return ResponseHelper.createNoContentResponse();
}
処理するクラス
Class ProcessData{
public void updateData()
checktStatus(uri);
update();// should wait untill the processConfigStatus() endpoint gives status
}
private checktStatus(String uri){
// makes a REST call to a URI using a JAX-RS webclient or a httpclient this returns HTTP 200 or 204 code immediatley. And then the Server process the request asynchronously and gives back the status to JAX-RS endpoint(/status).
post(uri);
}
}
別のクラスからのメソッド呼び出し
ProcessData pd = new ProcessData()
pd.updateData();