我的Android应用程序向Jetty服务器上的servlet发送HTTP请求并接收响应。它在Jetty 6.1.26中运行良好。它也适用于Jetty 7.6.13(使用servlet-api-2.5.jar)和Jetty 8.1.15(使用servlet-api-3.0.jar)但是当我将完全相同的servlet部署到Jetty 9.1.5时。 v20140505(使用servlet-api-3.1.jar)在同一台机器上,它导致我的Android应用程序中的套接字超时。我使用java jre1.7.0_55。
在Android应用程序中,连接超时为3000,套接字超时为5000.即使我将套接字超时增加到30,000,也没有区别。但如果我把它设置为40,000就可以了。
知道发生了什么事吗?为什么android代码花了这么多时间来接受来自jetty 9的servlet响应?
答案 0 :(得分:0)
删除servlet中的response.setContentLength()解决了这个问题。我发送了大约30个字符作为响应,但将长度设置为1024.我的猜测是Android应用程序期待更多数据查看响应中设置的长度,因此它等待直到发生某种超时。显然,Jetty 9中的servlet 3.1与以前的版本不同。