我已经在Sun轻量级HTTP服务器上发布了Web服务终结点。服务器正在使用ThreadPool执行程序运行该连接(Executors.newCachedThreadPool()
)。
我还使用常规的Web服务客户端(也包括JAX-WS)。
似乎对于每一次超过5分钟的呼叫,服务器(或客户端)都会结束当前的呼叫线程并打开一个新线程。在服务器中,看起来好像建立了新的连接,并尝试运行相同的操作。
这只会发生一次,这意味着“第二次通话”可能会超过5分钟。
连接是否存在默认超时?有没有一种配置方法?
最佳答案
如果使用http服务器重量轻,则5百万分钟后,连接将变为空闲状态。该实现(请看 ServerImpl
和 ServerConfig
)关闭了空闲连接,并且当前没有公共属性来设置此空闲超时。如果需要这种控制,则可能要使用Servlet容器。或者,您可以使用Jetty (which provides a SPI) instead of Sun default HttpServer。