java - HTTP 请求在 Tomcat 关闭期间被阻止

标签 java tomcat servlets tomcat7 shutdown

我在关闭 Tomcat 时遇到问题。请求到达时 servlet 容器正在关闭似乎被连接器阻止 直到容器关闭完成。

问题是,我们的 servlet 最多可能需要一分钟才能关闭,这意味着 在此期间到达的连接最多保留一分钟。

此行为是否正确/符合预期?

理想的 Tomcat 关闭行为不是

  1. 让现有的请求 完成(因为它已经完成),但是
  2. 拒绝新连接(而不是 接受并持有它们)?

最佳答案

显然,您不是唯一注意到/评论此行为的人;请参阅此“tomcat-user”帖子:

(事实上,该帖子与您的问题之间的相似之处表明您与 Andry Eng 之间存在某种联系……)

很明显,这在某种意义上是“预期的”行为。

是否“正确”,见仁见智。如果 Tomcat 开发人员不同意您的意见,那就没有意义了。

而且,就其值(value)而言,在这里发布关于“理想”行为的修辞性问题也没有实际意义。显然,Tomcat 开发人员要么不在 StackOverflow/“tomcat-users”中闲逛……要么他们不愿意讨论这个问题。


那么您有哪些可能的解决方案?

  • 此链接的问答解释了解决方法 - How to process servlet requests during long shutdown

  • 您可以在 Tomcat 问题跟踪器上提出问题。问题是您的问题可能会在 list 上停留数月或数年才能得到解决。或者它可以被“驳回”。

    但是,过去似乎没有人将此作为问题提交。

  • 您可以想出如何修改 Tomcat 以在关机期间拒绝新请求。然后将您的(测试过的)更改作为补丁提交。

  • 您可以雇人为您完成这项工作。例如,查看此处列出的人员/组织:http://wiki.apache.org/tomcat/SupportAndTraining .

关于java - HTTP 请求在 Tomcat 关闭期间被阻止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29275922/

相关文章:

java - Spring Webapplistener 问题

tomcat - 动态更新文件夹中的文件列表

java - 线程中的异常 "main"java.lang.IllegalArgumentException : PWC6309: Illegal compilerSourceVM: 12

java - 使用 OkHttp 时 Webapp 取消部署内存泄漏,是否误报?

java - Openshift - 找不到适用于 jdbc 的驱动程序 :mysql

java - 为什么这段代码中需要引号?

java - 使用 XPath 解析相同的 XML 元素

java - 类似于 a^b 的快速函数

java - 创建您自己的地名词典列表

servlets - 从 HttpServletRequest 中提取 SOAP 对象