- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个ExceptionMapper
作为@Provider
用于处理我的所有异常。
所以很明显我的类实现了 ExceptionMapper<Throwable>
众所周知,所有异常(exception)情况均已延长 Throwable
不知怎的。
现在我使用jax-rs @NotNull
检查我的资源输入值不为空,通过一些搜索,我意识到它会抛出 ConstraintViolationException
当注释字段为空时。
所以我尝试处理它并在我的 ExceptionMapper 中添加一些响应详细信息(添加一些自定义 json 模型),如下所示:
@Provider
public class AllExceptionMapper implements ExceptionMapper<Throwable> {
private final Logger logger = LogManager.getLogger(AllExceptionMapper.class);
@Override
public Response toResponse(Throwable ex) {
Response response;
CustomError error;
// handle some errors
else if (ex instanceof ConstraintViolationException) {
error = new CustomError(
324, // predefined error type in our documents
"some details"
);
response = Response.status(Response.Status.BAD_REQUEST).entity(error).build();
}
// handle some other errors
return response;
}
}
问题是这不起作用但是如果我创建另一个实现 ExceptionMapper<ConstraintViolationException>
的异常映射器提供程序并在那里处理它,它工作没有任何问题。
正如我之前所说(并且也检查过),所有异常都从 Throwable
扩展而来。不知怎的,我错过了什么以及为什么它不起作用?
……
通过不起作用,我的意思是它忽略我的映射器(从 ExceptionMapper<Throwable>
实现的映射器)并具有正常行为,即返回状态代码 400 且没有响应负载,就像根本没有映射器一样
最佳答案
方式ExceptionMapper
应该可以工作,你可以创建一个通用的 ExceptionMapper<Throwable>
,它处理所有错误。然后您可以创建更具体的ExceptionMapper
以另一种方式处理更具体的错误。所有这些都在不同的类(class)中进行。
事实上,在一个单独的类中完成它对你来说是有效的,让我相信有一个更具体的 ExceptionMapper
某个地方,它会先于你处理异常。
ExceptionMappers 的使用方式实际上非常干净,并且还能保持代码干净。想要将代码保留在一个中心位置,将导致一个巨大的 if
...
关于java - JAX-RS( Jersey 实现)ExceptionMapper<Throwable> 未捕获 ConstraintViolationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53063143/
我如何注册一个包罗万象的 ExceptionMapper确实如此 不是 拦截 WebApplicationException哪个 Jersey 提供特殊处理? 更新 :我提交了此功能请求:http:/
抱歉我的英语不好。我正在使用 grizzly 和 jersey 构建 Web 应用程序。 我是这样实现的 ErrorModel errorModel = new ErrorModel(
我将 Jersey 用于 REST 网络服务。 每当我没有从服务层获得任何对象时,我都会通过抛出 NotFoundException(Package com.sun.jersey.api) 来处理所有
我的应用程序提供了一个 RESTful 接口(interface)来执行某些操作。我正在使用 ExceptionMapper 捕获 NoResultException 或 EntityNotFound
假设我有 3 个想要“捕获”的异常类: Jersey 的 WebApplicationException MyException 扩展了 RuntimeException 异常 我希望 WebAppl
我正在为 EJB 服务开发 REST-facade,这意味着它调用 EJB,将结果转换为 REST 调用者能够理解的表示形式,然后返回它(作为 json 或 xml)。所有这些都表现出色。但是 EJB
我的 Spring Boot + Jersey REST 服务无法按预期工作。 EmailExistsException 在 UserController 中抛出,但我只收到错误 500。一直都是。而
我正在抛出异常 MyCustomException从我的应用程序。 (EJB 层) 我在 Web 服务层中有一个异常映射器,如下所示 - package net.webservices; import
我正在尝试调用此异常映射器以返回 404 未找到响应,但它一直返回 500 内部错误。 Jersey 版本是 2.22.1。下面的代码片段。感谢所有帮助。 谢谢。 异常映射器类。 package or
我有一个ExceptionMapper,它是通用公共(public)库的一部分: @Provider public class GenericExceptionMapper implements Ex
我正在使用 Jersey 在 java 中做一个 Web 服务。我对 Jersey 的依赖是: /* JAX-RS Impl (Jersey) */ compile 'org.glassfish.je
问题Exception Handling/Mapping for a particular class让我想到了如何将 ExceptionMapper 注册到特定资源 Method 的问题。 我试过像
我正在尝试调用此异常映射器以返回 404 未找到响应,但它一直返回 500 内部错误。 Jersey 版本是 2.22.1。下面的代码片段。感谢所有帮助。 谢谢。 异常映射器类。 package or
在 Quarkus 中,异常映射器返回的实体似乎被包装在另一个实体中。 提供一个 JAX-RS 异常映射器,例如: @Provider public class WebhookExceptionMap
我有一个使用RESTeasy 2.0.1.GA在JAX-RS中使用ExceptionMapper的方案。一切正常。 我现在想使用RESTeasy的mock mechanism测试整个过程。不幸的是我的
我为特定对象制作了一个 RESTFUL-API 并使用 javax.validation.Constraints 进行验证,当我执行应用程序时它按预期工作并且 ExceptionMapper 类被正确
我有 REST Web 服务,我使用 Jersey Test、Mockito、Junit 对其进行测试。当 Web 服务方法成功执行时,我得到正确的响应。如果数据无效,则抛出自定义异常,必须由 Exc
我正在开发一个使用 Dropwizard 的应用程序,它具有 ExceptionMapper 的实现:https://github.com/dropwizard/dropwizard/blob/mas
我正在使用 Jersey 2.5.1 和 Jackson 2.2。用于构建 JSON Rest Web 服务。我也用 2 个 ExceptionMappers 启动并运行它,但对于“非 json”请求
我在应用程序中使用RestEasy,并且从ExceptionMapper接口(interface)实现了toResponse方法。 我的问题是:这个方法在海量请求的环境下会不会有问题(很多请求会导致抛
我是一名优秀的程序员,十分优秀!