48.5.4. 注册回调

概述

您可以选择将回调添加到 AsyncResponse 实例,以便在调用完成时获得通知。当可以调用这个回调时,可以调用以下两种替代点:

  • 请求处理完成后,响应已发回到客户端,或者
  • 请求处理完成后,会将未映射的 Throwable 传播到托管 I/O 容器。

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