gpt4 book ai didi

jax-rs - 如果在 Controller 中的某处抛出异常,是否执行 ContainerResponseFilter?

转载 作者:行者123 更新时间:2023-12-03 15:00:34 27 4
gpt4 key购买 nike

我有一个基于 RestEasy 的服务,我正在一个 ContainerResponseFilter 中做一些清理工作。问题是,如果资源抛出未知的运行时异常(即我没有映射器的异常),则永远不会执行 ContainerResponseFilter。
这是预期的行为吗?有解决方法吗?我在看以下问题(乔纳斯回答):
How should I log uncaught exceptions in my RESTful JAX-RS web service?
这使得即使在 Controller 中抛出异常时,ContainerResponseFilter 似乎也被执行了?
我错过了什么吗?

最佳答案

也没有为我工作。这声称它应该有效:https://github.com/Graylog2/graylog2-server/issues/1826

我不想进一步调查,只是使用一个普通的旧 javax.servlet.Filter,但当然很难设置响应头(在 chain.doFilter() 之后,... grr..

所以使用了一个 Spring 解决方案:

public static class MyFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
response.setHeader("MyHeader", "MyValue");
filterChain.doFilter(request, response);
}
}

关于jax-rs - 如果在 Controller 中的某处抛出异常,是否执行 ContainerResponseFilter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33003935/

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