Обработка ошибок с перехватчиками CXF -Изменение ответного сообщения

Я пытаюсь обработать ошибки, исходящие от моего бэкенда. handleMessage()вызывается, если возникает ошибка, но содержимое является экземпляром XmlMessage. Я хотел бы изменить его на свой собственный ответ -, просто установить код ответа и добавить сообщение.

Я не нашел подходящей документации, которая могла бы рассказать мне, как это сделать...

Эти примеры предназначены для REST, но я хотел бы также управлять этим в SOAP.

interceptor

public class ErrorHandlerInterceptor extends AbstractPhaseInterceptor<Message> {

    public ErrorHandlerInterceptor() {
        super(Phase.POST_LOGICAL);
    }

    @Override
    public void handleMessage(Message message) throws Fault {
        Response response = Response
           .status(Response.Status.BAD_REQUEST)
           .entity("HOW TO GET A MESSAGE FROM AN EXCEPTION IN HERE???")
           .build();
        message.getExchange().put(Response.class, response);
    }

}

context.xml

<bean id="errorHandlerInterceptor"
    class="cz.cvut.fit.wst.server.interceptor.ErrorHandlerInterceptor" />

<jaxrs:server address="/rest/">
    <jaxrs:serviceBeans>
        <ref bean="restService" />
    </jaxrs:serviceBeans>
    <jaxrs:outFaultInterceptors>
        <ref bean="errorHandlerInterceptor" />
    </jaxrs:outFaultInterceptors>
</jaxrs:server>
7
задан user219882 11 April 2012 в 08:08
поделиться