Menu Close

48.5.4. コールバックの登録

概要

オプションで、呼び出しが完了したときに通知されるように、AsyncResponseインスタンスにコールバックを追加できます。このコールバックを呼び出すことができる処理には、次の 2 つの代替ポイントがあります。

  • 要求処理が終了し、応答がすでにクライアントに返信されている。
  • リクエスト処理の終了後、マッピングされていない Throwable がホスト I/O コンテナーに伝播された。

CompletionCallback インターフェース

完了コールバックを追加するには、以下のように定義された javax.ws.rs.container.CompletionCallback インターフェースを実装する必要があります。

// Java
package javax.ws.rs.container;

public interface CompletionCallback {
    public void onComplete(Throwable throwable);
}

通常、throwable 引数は null です。ただし、リクエスト処理によってマッピングされていない例外が発生した場合は、throwable にはマッピングされていない例外インスタンスが含まれます。

完了コールバックの登録

完了コールバックを実装したら、registerメソッドの 1 つを呼び出して、現在の AsyncResponse オブジェクトに登録する必要があります。たとえば、型 MyCompletionCallback の完了コールバックを登録するには、次のコマンドを実行します。

asyncResponse.register(new MyCompletionCallback());