问题标签 [exceptionmapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
366 浏览

java - 为什么 CORSFilter 与 ExceptionMapper 冲突?

我有这个 Java thorntail 应用程序,我想在其中捕获所有未捕获的异常。

我想回复 500 而不是 JAXRS 提供的默认错误页面,所以我只使用了ExceptionMapper<Throwable>.

使用 Postman 进行测试没有问题,但是一旦我尝试在浏览器中进行 AJAX 调用,我最终发送了 OPTIONS 请求,但失败了。

CORS 部分也是通过实现在应用端实现的ContainerResponseFilter

我有一种感觉 MATCHING 发生在请求的早期阶段,只有后来 CORSFilter 才会对响应产生影响。

我已经尝试过的几件事:

  • @PreMatching
  • @优先
  • 试图导入 jboss.resteasy CorsFilter
  • 试图通过 过滤掉异常exception instanceof DefaultOptionsMethodException,但最终发现DefaultOptionsMethodException它不在类路径中,它的内部(?)包包含在 thorntails 类路径(??)
  • ...

示例存储库:https ://github.com/trimpirim/cors-filter-conflict-exception-mapper

0 投票
0 回答
50 浏览

java - JerseyServlet - 部署时 ExceptionMapper 并不总是有效

我正在尝试为我的应用程序创建一个全局 ExceptionMapper,这个 ExceptionMapper 将在控制台中显示异常,然后以美化方式再次显示它,然后将它的一些信息保存在数据库中,以便将来更容易识别这些事件。

我的应用程序使用com.sun.jersey.spi.spring.container.servlet.SpringServlet,我发现我可以使用带有 ExceptionMapper 的 Provider 来拦截异常,所以我做了这个:

我以这种方式在我的 web.xml 中声明了它:

有了这个,我的 ExceptionMapper 工作正常,但由于某种原因,它并不总是有效,当我编译和部署我的应用程序时,有时工作,有时不工作,而无需更改任何代码。

当我的 ExceptionMapper 不起作用并且没有进入那里时,我尝试调试它,就像我的 ExceptionMapper 没有正确加载一样......在控制台中,它似乎正在正确加载:

但这不是因为我不能在那里进行调试,就像部署忽略了我的映射器......我还有什么要留下的吗?这应该是我缺少的一些配置,但奇怪的是有时它可以正常工作,我什至可以在那里停止调试器。

我在一些相关文章中读到说,由于 jersey 试图在其映射器列表(包括一些 jersey 默认映射器)中找到给定异常的最佳匹配,因此您必须将映射器映射到您试图捕获的确切异常,因为映射器的顺序是任意的,但在我的情况下,我不想映射一些特定的异常,而是我的应用程序中的所有异常。

由于我的应用程序中没有任何其他映射器,因此执行此操作的映射器应该是球衣默认映射器,有没有办法关闭它们?还是我错过了什么?

非常感谢您的回答。

0 投票
0 回答
17 浏览

jersey - 如何格式化不同资源的错误响应?

我有一个带有两个资源的 Jersey JAX-RS 服务器,两个资源apinew-api使用一个库,InvalidRequestException两个 api 都应该响应application/json,但是api应该将错误响应格式化为{ message: string, code: number }whilenew-api应该返回{ error: string, type: string }

我可以在 ResourceInfo 上编写一个ExceptionMapperMessageBodyWriter那个分支,但我宁愿为每个资源注册一个不同的映射器或编写器,但我不知道如何。

0 投票
0 回答
31 浏览

java - 请求上下文包含较旧的授权令牌

我在异常映射器中添加了 ContainerRequestContext。

现在关于这个问题,

  1. 当我第一次发送请求时,假设使用用户 1 令牌,异常映射器的 reqContext 会在授权标头中向我显示正确/当前的令牌信息。
  2. 然后稍后如果我使用用户 2 令牌发送相同的请求,异常映射器的 reqContext 会向我显示较旧的令牌详细信息。即使在请求过滤器中,令牌也是用户 2 的,但是当它进入异常映射器时,它会显示较旧的令牌。

需要帮助以了解它是如何发生的。

0 投票
1 回答
101 浏览

junit - 如何为 Quarkus 编写测试 - ResponseExceptionMapper 和 ExceptionMapper

我正在使用两个异常映射器,responseexceptionmapper 和 exceptionmapper。现在我需要从这些映射器中获得代码覆盖率。

有什么例子吗?

0 投票
0 回答
14 浏览

jax-rs - JAX-RS - 在 ExceptionMapper 中检索传递的对象参数

我正在尝试检索在 ExceptionMapper 中的请求中传递的 ApplicationRequest 对象,并将其发送回错误响应中。

感谢任何帮助。

0 投票
0 回答
13 浏览

spring-mvc - 当我单击刷新时,Atlas UI 上出现 404 错误

我正在尝试使用 NotFoundExceptionMapper 处理此问题,但它没有调用该类。

这是我的代码。我们正在尝试删除“#!” 从网址。请不要建议我@controller。404 上哪个班?

0 投票
0 回答
29 浏览

java - JAX-RS ExceptionMapper 未捕获 javax.validation.ConstraintViolationException

我已经开始使用 javax.validation 的@Valid注释来验证到达我的 REST 端点的数据。这是按预期工作并引发适用的异常:

我的理解ExceptionMapper是我应该能够做到这一点:

Response哪个应该捕获该异常并指定要发回的适当对象。

然而,这不起作用,这是完整的顶级堆栈跟踪项:

我的理解是ConstraintViolationException,虽然是原因,但已被打包在 RollbackException 中,因此不会被 ExceptionMapper 捕获。

  1. 有人可以证实这一点吗?
  2. 如果是这样,是否有办法覆盖此行为并捕获其中包含的任何异常ConstraintViolationException
  3. 如果没有,有什么好的解决方法?

想法?

谢谢。