gpt4 book ai didi

java - 调用 Tomcat doFilter() 并提交响应

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:25 27 4
gpt4 key购买 nike

我有一个 Tomcat 过滤器,它根据 URL 将请求委托(delegate)给处理对象。这是 FilterChain 中唯一的过滤器。我有一个 Ajax 应用程序可以通过大量请求来处理此过滤器。

最近我注意到一个问题,过滤器的 doFilter 方法经常以提交的响应作为参数调用(在内部,它是标记为提交的土狼响应)。

在我看来,如果 recycle() 方法没有在这个土狼响应中调用,唯一可能发生这种情况的方法。我已检查以确保我没有保留对任何请求、响应、outputStream 或编写器对象的引用。此外,我确保在 finally block 中关闭 outputStream。但是,这并不能解决这个问题。

这听起来像是我在滥用 servlet 容器,但我无法追踪到它。

最佳答案

我试过使用 Tomcat 6.16 和 6.18。这绝对是链中唯一的过滤器。

似乎有什么东西在保留对 servlet outputStream 的引用。我将 ServletOutputStream 包装在我自己的 OutputStream 中,然后确保引用被销毁。这解决了问题,因此我不再看到传入的 promise 响应。

这是持有引用的一个奇怪的副作用。但我认为它不符合 Tomcat 错误的条件。更可能是 ImageIO.createImageOutputStream() 中的错误,我怀疑它持有引用。

关于java - 调用 Tomcat doFilter() 并提交响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45361/

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