CXF 클라이언트에서 jaxrs-in-interceptor, provider 및 exception mapper가있는 곳에서 플로우가 발생했습니다. 내 경우에는 인 - 인터셉터를 통해 클라이언트로부터 잘못된 응답을 얻었고 cxf 버스 체인을 중단하고 오류를 던지 싶습니다. 불행하게도 나는 인터셉터에서 던져진 모든 상황 예외가 기록되지만, 메인 오류 (틀린 json 형식)가 예외 매퍼로 전파된다. 예외 매퍼 (Exception mapper)는 피하고 싶지만 어떻게해야할지 모르겠다. 나는이 같은 인터셉터를 구현하는 웹 클라이언트를 사용하고 있습니다 : 나는 예외 매퍼에 전파되지 않습니다 인터셉터에 의해 슬로우 jaxrs 필터 원인 예외를 구현해야한다는 읽어CXF 인터셉터에서 예외 매퍼로 예외를 전파합니다.
@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());
}
}
. WebClient 구현 덕분에 Java에서 그렇게 할 수 있습니까?
S client = create(url, clazz, list(jsonProvider(), providers));
WebClient.getConfig(client).getInInterceptors().add(new MyInterceptor());
나는 또한 인터셉터에서 다른 단계를 사용하려고 시도했지만 작동하지 않았습니다.