1

正如我所注意到的,在我的 中,如果我在 say ( )CXF JaxRS service中抛出异常并且不提供任何默认值,则将负责构建应返回的响应。READ phaseIN interceptorFaultOutInterceptorXMLFaultOutInterceptor(which is always an XML)

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

我在网上找到了这样的东西:

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

    @Override
    public void handleMessage(Message message) {
        ...
        message.getInterceptorChain().abort();
    }
}

我已经在 中配置了它outInterceptor,我应该有条件地中止(如果请求类型是application/Json)还是不中止(如果请求类型是application/xml)拦截器链?(我不确定请求类型信息是否已经可用。此外,不知何故,中止链似乎不太正确)

如果响应达到JAXRS filters,使用ExceptionMapper<T>我会很好地处理响应。但是当出现异常时INinterceptor,我有点失落。

什么是能够定义 a 的好方法FaultOutInterceptor

4

0 回答 0