gpt4 book ai didi

java - 当资源抛出异常时,RestEasy 重置所有 header

转载 作者:行者123 更新时间:2023-11-29 08:56:38 26 4
gpt4 key购买 nike

我在启用 Cors 的 jBoss 服务器中使用 resteasy-jaxrs 时发现了一些奇怪的东西。这是设置:

我们的服务器启用了 thetransactioncompany.com 的 CorsFilter (v1.3.2) 作为 servlet 过滤器以启用 CORS 并将适当的 CORS header 添加到 HttpServletResponse 对象。

服务器本身正在使用 resteasy-jaxrs (v2.3.2.Final) 来提供 JSON 端点来为我们的应用程序提供支持,显然在单独的域上运行。

问题是,如果我的端点方法之一生成任何类型的异常(NPE、UnauthorizedException、InternalServerErrorException),作为准备响应的一部分,RestEasy 会调用

(HttpServletResponse)response.reset() 

这会清除我的 CORS header 。这会导致 Chrome 正确地采取行动,就好像应该取消请求一样。这对于需要这些错误代码的前端开发人员来说真的很不方便。

两个问题:

  1. 为什么 RestEasy 要清除这些 header ?
  2. 有没有其他人遇到过这个问题并有任何解决方法?

最佳答案

看到您遇到这种行为,我真的很惊讶,因为我从未见过这种情况,而且我这一天当然遇到过很多异常。

无论如何,请考虑按照 here 所述编写自定义 ExceptionMapper .您可以使用 CORS header 填充响应并将其与相应的错误信息一起从 toResponse 返回。

关于java - 当资源抛出异常时,RestEasy 重置所有 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20008759/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com