Распространение исключения из перехватчика CXF в модуль отображения исключений
У меня есть поток, где на клиенте CXF у меня есть jaxrs-in-interceptor, поставщик и преобразователь исключений. В моем случае я ловлю плохой ответ от клиента через in-interceptor, а затем я хотел бы прервать цепочку шины cxf и выдать ошибку. К сожалению, я не смог этого сделать, потому что в каждой ситуации исключение, сгенерированное из перехватчика, только регистрируется, но основная ошибка (неправильный формат json) передается в преобразователь исключений. Я хотел бы избежать Exception Mapper, но я не знаю как. Я использую WebClient для реализации перехватчиков, как это:
@Component
public class MyInterceptor extends AbstractPhaseInterceptor<Message> {
public MyInterceptor() {
super(POST_STREAM);
}
@Override
public void handleMessage(Message message) throws Fault {
if (message != null) {
//message.getExchange().setOneWay(true);
//message.getExchange().put(Exception.class, new MyException());
//message.getInterceptorChain().abort();
//message.setContent(Exception.class, new MyException());
//Endpoint ep = message.getExchange().get(Endpoint.class);
//message.getInterceptorChain().abort();
//if (ep.getInFaultObserver() != null) {
// ep.getInFaultObserver().onMessage(message);
//}
//throw new WebApplicationException( new MyException());
//message.setContent(Response.class, response);
throw new Fault(new MyException());
}
}
Я прочитал, что я должен реализовать jaxrs-фильтр, потому что исключения, генерируемые перехватчиком, не распространяются на модуль отображения исключений. Есть ли способ сделать это в Java благодаря реализации WebClient?
S client = create(url, clazz, list(jsonProvider(), providers));
WebClient.getConfig(client).getInInterceptors().add(new MyInterceptor());
Я также пытался использовать разные фазы на перехватчике, но это также не сработало.