我有一个服务器将一组类公开为 RESTful 服务。我知道我们可以使用ExceptionMapper将异常传递给客户端。客户端和服务器之间共享的检查异常很少。但是,在我的一些服务中,我几乎没有在客户端 JVM 中不可用的检查异常。
我了解更改端点以确保正确处理检查的异常可以解决问题。
但是,我想在拦截器层这样做有两个原因:
- 这将是一个我可以处理导致检查异常的所有调用的地方。
- 由于当前的发布日期,这将是一项重大的重构工作。
查看CXF 文档,我知道我必须扩展AbstractPhaseInterceptor
和覆盖handleMessage()
public class MyOutExceptionInterceptor extends AbstractPhaseInterceptor<Message> {
public AttachmentInInterceptor() {
//Which phase to call here ??
super(Phase.POST_INVOKE);
}
public void handleMessage(Message message) {
//Check from message that it contains an exception of MyCheckedException.class
//Create an exception that client can understand
}
}
我该怎么做呢 ?
提前致谢。