Как зарегистрировать собственный преобразователь исключений в Mule + Jersey + Spring?

Я создал сопоставитель исключений, используя JAX-RS ExceptionMapper:

@Provider
public class MyCustomExceptionMapper implements ExceptionMapper<MyException>{...}

Мне непонятно, как это прописать, чтобы при выбрасывании MyException маппер вызывался автоматически. Я использую среду Mule + Jersey + Spring.


person TERACytE    schedule 18.03.2011    source источник


Ответы (3)


Если вы используете 3.1.2-SNAPSHOT+ или 3.2-SNAPSHOT+, вы можете сделать это:

<jersey:resources>
    <component class="org.mule.module.jersey.HelloWorldResource"/>
    <jersey:exception-mapper class="org.mule.module.jersey.exception.HelloWorldExceptionMapper" />
</jersey:resources>
person Dan Diephouse    schedule 27.04.2011

В этом ответе говорится об использовании @Repository с Spring

JAX-RS Custom ExceptionMapper не перехватывает RuntimeException

person Collin Peters    schedule 24.06.2011

Mule 3.4.0 включает поддержку:

https://www.mulesoft.org/jira/browse/MULE-5458

<sub-flow name="RestServiceFlow">
    <jersey:resources>
        <component class="org.example.AResource"/>
        <component class="org.example.BResource"/>
        <jersey:exception-mapper class="org.example.AExceptionHandler" />
        <jersey:exception-mapper class="org.example.BExceptionHandler" />
    </jersey:resources>
</sub-flow>

Классы аннотируются аннотацией @Provider, как описано в вопросе.

person Marcello de Sales    schedule 19.07.2013