我使用 JAX-RS ExceptionMapper 构建了一个异常映射器:
@Provider
public class MyCustomExceptionMapper implements ExceptionMapper<MyException>{...}
我不清楚如何注册它,以便在抛出 MyException 时自动调用映射器。我使用的环境是 Mule + Jersey + Spring。
如果您使用的是 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>
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 注释进行注释。
此响应说要在 Spring 中使用 @Repository