48.5.4. 注册回调

概述

您可以选择将回调添加到 AsyncResponse 实例,以便在调用完成时获得通知。当可以调用此回调时,处理中有两个替代点,分别是:

  • 请求处理完成后,响应已被发送回客户端,或者
  • 请求处理完成后,向托管 I/O 容器传播一个未映射的 Throwable

CompletionCallback 接口

要添加完成回调,您必须实施 javax.ws.rs.container.CompletionCallback 接口,其定义如下:

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

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

通常,可迭代 的参数为 null。但是,如果请求处理导致了未映射异常,则可 抛出 包含未映射异常实例。

注册完成回调

在实施完回调后,您必须调用其中一个 寄存器 方法将它注册到当前的 AsyncResponse 对象。例如,若要注册类型为 MyCompletionCallback 的完成回调:

asyncResponse.register(new MyCompletionCallback());