簡體   English   中英

RESTEasy中的ExceptionMapper問題

[英]ExceptionMapper issue in RESTEasy

在我的JAXRS應用程序中,我有2個ExceptionMapper注冊為@Provider

public class MyExceptionMapper implements ExceptionMapper<Exception> {...}

public class MyCustomRuntimeExceptionMapper implements ExceptionMapper<MyCustomRuntimeException> {...}

當我的應用程序拋出一個新的MyCustomRuntimeException ,異常會被捕獲到MyExceptionMapper ,即使(JAX-RS規范說)它應該被捕獲到MyCustomRuntimeExceptionMapper中。

以下是JAXRS所說的 -

JAX-RS也支持異常繼承。 拋出異常時,JAX-RS將首先嘗試為該異常的類型找到ExceptionMapper。 如果找不到,它將尋找可以處理異常超類的映射器。 它將繼續這個過程,直到沒有更多的超類來匹配。

有沒有人有線索,這里發生了什么?

通過在我的web.xml中聲明如下的提供程序,我能夠做到正確:

<context-param>
        <param-name>resteasy.providers</param-name>
        <param-value>CustomExceptionHandler,DefaultExceptionHandler</param-value>
</context-param>

我也有這個問題。 看起來好像它在查找子類之前找到了異常的超類。 這使我無法使用ExceptionMapper for Exception。 有一個特定於應用程序的異常,我必須處理它有子類; 我不能為他們單獨的異常映射器。 我有一個超類的異常映射器,然后是一堆“if(e instanceof SubClassA)”語句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM