Java 处理来自CXF FaultOutInterceptor的XML和JSON响应

Java 处理来自CXF FaultOutInterceptor的XML和JSON响应,java,cxf,handler,jax-rs,interceptor,Java,Cxf,Handler,Jax Rs,Interceptor,正如我所注意到的,在我的CXF-JaxRS服务中,如果我在say读取阶段(在拦截器中)抛出一个异常,并且没有提供任何默认的FaultOutInterceptor,那么XMLFaultOutInterceptor将负责构建应该返回的响应(它始终是一个XML) 现在,我希望能够以请求服务的格式返回响应:JSON或XML或其他格式 我在网上发现了这样的东西: public class JsonFaultOutHandlerInterceptor extends JAXRSOutInterceptor

正如我所注意到的,在我的
CXF-JaxRS服务中
,如果我在say
读取阶段
在拦截器中
)抛出一个异常,并且没有提供任何默认的
FaultOutInterceptor
,那么
XMLFaultOutInterceptor
将负责构建应该返回的响应(它始终是一个XML)

现在,我希望能够以请求服务的格式返回响应:JSON或XML或其他格式

我在网上发现了这样的东西:

public class JsonFaultOutHandlerInterceptor extends JAXRSOutInterceptor
{
    public JsonFaultOutHandlerInterceptor() {
        getBefore().add(LoggingOutInterceptor.class.getName());
    }

    @Override
    public void handleMessage(Message message) {
        ...
        message.getInterceptorChain().abort();
    }
}
我已经在
outiterceptor
中配置了它,我应该有条件地中止(如果请求类型是
application/Json
)还是不中止(如果请求类型是
application/xml
)拦截器链?(我不确定请求类型信息是否已经可用。而且,不知何故,中止该链似乎不太正确)

如果响应到达
JAXRS过滤器
,使用
exceptionapper
我会很好地处理响应。但是,当Interceptor中的
发生异常时,我有点不知所措

定义
FaultOutInterceptor
的好方法是什么