问题标签 [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.
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
java - JerseyServlet - 部署时 ExceptionMapper 并不总是有效
我正在尝试为我的应用程序创建一个全局 ExceptionMapper,这个 ExceptionMapper 将在控制台中显示异常,然后以美化方式再次显示它,然后将它的一些信息保存在数据库中,以便将来更容易识别这些事件。
我的应用程序使用com.sun.jersey.spi.spring.container.servlet.SpringServlet
,我发现我可以使用带有 ExceptionMapper 的 Provider 来拦截异常,所以我做了这个:
我以这种方式在我的 web.xml 中声明了它:
有了这个,我的 ExceptionMapper 工作正常,但由于某种原因,它并不总是有效,当我编译和部署我的应用程序时,有时工作,有时不工作,而无需更改任何代码。
当我的 ExceptionMapper 不起作用并且没有进入那里时,我尝试调试它,就像我的 ExceptionMapper 没有正确加载一样......在控制台中,它似乎正在正确加载:
但这不是因为我不能在那里进行调试,就像部署忽略了我的映射器......我还有什么要留下的吗?这应该是我缺少的一些配置,但奇怪的是有时它可以正常工作,我什至可以在那里停止调试器。
我在一些相关文章中读到说,由于 jersey 试图在其映射器列表(包括一些 jersey 默认映射器)中找到给定异常的最佳匹配,因此您必须将映射器映射到您试图捕获的确切异常,因为映射器的顺序是任意的,但在我的情况下,我不想映射一些特定的异常,而是我的应用程序中的所有异常。
由于我的应用程序中没有任何其他映射器,因此执行此操作的映射器应该是球衣默认映射器,有没有办法关闭它们?还是我错过了什么?
非常感谢您的回答。
jersey - 如何格式化不同资源的错误响应?
我有一个带有两个资源的 Jersey JAX-RS 服务器,两个资源api
都new-api
使用一个库,InvalidRequestException
两个 api 都应该响应application/json
,但是api
应该将错误响应格式化为{ message: string, code: number }
whilenew-api
应该返回{ error: string, type: string }
。
我可以在 ResourceInfo 上编写一个ExceptionMapper
或MessageBodyWriter
那个分支,但我宁愿为每个资源注册一个不同的映射器或编写器,但我不知道如何。
java - 请求上下文包含较旧的授权令牌
我在异常映射器中添加了 ContainerRequestContext。
现在关于这个问题,
- 当我第一次发送请求时,假设使用用户 1 令牌,异常映射器的 reqContext 会在授权标头中向我显示正确/当前的令牌信息。
- 然后稍后如果我使用用户 2 令牌发送相同的请求,异常映射器的 reqContext 会向我显示较旧的令牌详细信息。即使在请求过滤器中,令牌也是用户 2 的,但是当它进入异常映射器时,它会显示较旧的令牌。
需要帮助以了解它是如何发生的。
junit - 如何为 Quarkus 编写测试 - ResponseExceptionMapper 和 ExceptionMapper
我正在使用两个异常映射器,responseexceptionmapper 和 exceptionmapper。现在我需要从这些映射器中获得代码覆盖率。
有什么例子吗?
jax-rs - JAX-RS - 在 ExceptionMapper 中检索传递的对象参数
我正在尝试检索在 ExceptionMapper 中的请求中传递的 ApplicationRequest 对象,并将其发送回错误响应中。
感谢任何帮助。
spring-mvc - 当我单击刷新时,Atlas UI 上出现 404 错误
我正在尝试使用 NotFoundExceptionMapper 处理此问题,但它没有调用该类。
这是我的代码。我们正在尝试删除“#!” 从网址。请不要建议我@controller。404 上哪个班?
java - JAX-RS ExceptionMapper 未捕获 javax.validation.ConstraintViolationException
我已经开始使用 javax.validation 的@Valid
注释来验证到达我的 REST 端点的数据。这是按预期工作并引发适用的异常:
我的理解ExceptionMapper
是我应该能够做到这一点:
Response
哪个应该捕获该异常并指定要发回的适当对象。
然而,这不起作用,这是完整的顶级堆栈跟踪项:
我的理解是ConstraintViolationException
,虽然是原因,但已被打包在 RollbackException 中,因此不会被 ExceptionMapper 捕获。
- 有人可以证实这一点吗?
- 如果是这样,是否有办法覆盖此行为并捕获其中包含的任何异常
ConstraintViolationException
? - 如果没有,有什么好的解决方法?
想法?
谢谢。