我有一台服务器将一组类作为RESTful服务公开。我知道我们可以使用ExceptionMapper将异常传递给客户端。客户端和服务器之间共享的检查异常很少。但是在我的一些服务中,我有几个检查异常,这些异常在客户端JVM中不可用。JAX RS CXF Interceptor用于引发客户端特定异常
我知道,更改端点以确保正确处理checked-exception可以解决问题。
但是,我想做到这一点,在拦截器层,原因有二:
- 这将是一个地方,我可以处理所有导致检查的异常的调用。
- 由于目前的发布日期,这将是一个很大的重构工作。在CXF documentation
看,我明白我必须扩展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
}
}
我该怎么办呢?
在此先感谢。
感谢您的回复。但是,我在'fault = new Fault(exception)'中得到了一个RuntimeException;'在带有此代码的链式拦截器中。 – Chris
这是什么样的例外? – mucher