【问题标题】:Axis Web Service Keep AliveAxis Web 服务保持活跃
【发布时间】:2010-11-11 18:00:10
【问题描述】:

我有一个在 Tomcat 中运行的轴 Web 服务。在 HTTP 1.1 中,客户端在不发送 Connection: close 标头的情况下进行连接,这意味着默认值为 Keep-Alive。不幸的是,客户端似乎遇到了问题,当它出现异常时,客户端没有关闭连接。由于这些客户端在批处理作业中发送大量流量,这很快就会耗尽我的所有连接。我想强制我的 Web 服务在特定处理程序(扩展 BasicHandler)完成后立即关闭每个连接。

我该怎么做? IE。调用 BasicHandler#invoke() 后如何强制服务器关闭连接?

【问题讨论】:

    标签: java web-services apache axis keep-alive


    【解决方案1】:

    在你的 tomcat 的 server.xml 文件中,找到 HTTP 连接器定义(它是带有 protocol="HTTP/1.1" 的元素),并添加 keepAliveTimeout 属性,详情如下:

    http://tomcat.apache.org/tomcat-6.0-doc/config/http.html

    您必须尝试使用​​不同的值来查看哪些值会为您提供所需的行为。还请查看其他设置,其中一些可能对您有用。

    请注意,这是 Tomcat 6 文档,因此并非所有选项都适用于 tomcat 5,因此请查看 tomcat 5 文档的相同部分。

    【讨论】:

    • 我知道这个选项。问题是它是服务器范围的。我不想弄乱我的 JSP 和 servlet 保持活动超时。就这一项网络服务。
    • HTTP 处理不会暴露给应用程序,但是。我建议您在 server.xml 中在不同的端口上定义另一个 HTTP 连接器,并让 Web 服务客户端使用它。
    • :) 对不起。昨天我的分数
    • 恐怕不会,不会。您可能需要考虑将 Apache 网络服务器放在您的应用服务器之前。这将为您提供对连接的共同控制,使用 apache 进行 http 配置而不是 appserver,还可以让您使用 mod_rewrite 自动将 web 服务请求定向到新的 tomcat 连接器,因此客户端不必更改它们的 URL .
    猜你喜欢
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    • 2011-05-21
    • 2011-08-07
    相关资源
    最近更新 更多