我从我的应用程序中抛出异常 MyCustomException
. (EJB层)
我在Web服务层中有一个异常映射器,如下所示 -
package net.webservices;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.Provider;
import net.common.MyCustomException;
@Provider
public class EJBExceptionMapper implements
ExceptionMapper<net.common.MyCustomException> {
public Response toResponse(MyCustomException exception) {
return Response.status(Response.Status.BAD_REQUEST).build();
}
}
我在 web.xml
的Web服务层注册了我的映射器,如下所示 -
<context-param>
<param-name>resteasy.providers</param-name>
<param-value>net.webservices.EJBExceptionMapper</param-value>
</context-param>
EJBExceptionMapper
没有 grab MyCustomException
. 但它被Web服务实现的catch块捕获 .
可能是什么问题呢?
注意:我不想使用 getProviderFactory().addExceptionMapper()
手动注册我的ExceptionMapper
2 回答
我没有工作(但我从未使用过RESTeasy,只有 Jersey ) . 在任何情况下,扩展
WebApplicationException
可能更简单 . 这样,您就不必注册提供者:您需要在catch块中抛出异常(类型为MyCustomException)并向方法签名添加“Throws MyCustomException”