Restlet 短连接问题

之前使用Restlet 2.0.15版本写的REST接口,在测试时,使用浏览器和Java httpclient进行请求均可以正常获取到响应。
但上线一段时间后,有一个用户却反馈他调用任何接口均无法获取到响应。
我用他提供的一个URL在浏览器中直接访问(GET请求),可以正常获取到数据,于是我便在服务端抓包查找原因。
原来,用浏览器或者Java httpclient进行请求时,请求报文均是keep alive状态,收到接口响应后,变为Close wait状态,而无法获取响应的用户的请求报文为close状态,也就是TCP短连接,Restlet 2.0.15版本在该情况下会导致客户端无法获取到响应。
由于客户端坚持使用短连接方式,因此只能在服务端想办法。
好在Restlet官方给出了解决方案,升级到2.3.7版本后,只需在pom.xml中加入jetty依赖即可。

<dependency>
  <groupId>org.restlet.jse</groupId>
  <artifactId>org.restlet.ext.jetty</artifactId>
  <version>2.3.7</version>
</dependency>

等待maven更新完成,重启REST服务,客户端短连接请求也能够正确收到响应了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值