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