文章

Restlet 客户端连接超时问题解决

使用Restlet进行同步请求,有时可能处理的时间会很长所以需要客户端进行较长时间的等待。从API中查得客户端的设置方式如下:

1
2
3
4
ClientResource client = new ClientResource(new Context(), uri);
client.setRetryAttempts(0);
client.setProtocol(protocol);
client.getContext().getParameters().add("socketTimeout", "60000");

不过,设置后,OneCoder经测试却发现无效。无论socketTimeout设置为多少。均会在1分钟左右超时。

这好像是由于Restlet默认使用的是一个简单的http服务,而在现在版本中,Restlet提供了很多增强的扩展。其中一个是ext.jetty扩展。即以jetty服务器做服务,启动Rest服务。使用方式很简单,无需修改原有代码,只需增加ext.jetty的依赖即可。

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

再次测试,有效。

值得一提的是,Restlet提供了很多扩展包。会对默认的Restlet服务进行很多增强。

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

GESP 学习专题站:GESP WIKI

"luogu-"系列题目可在洛谷题库进行在线评测。

"bcqm-"系列题目可在编程启蒙题库进行在线评测。

欢迎加入Java、C++、Python技术交流QQ群(982860385),大佬免费带队,有问必答

欢迎加入C++ GESP/CSP认证学习QQ频道,考试资源总结汇总

欢迎加入C++ GESP/CSP学习交流QQ群(688906745),考试认证学员交流,互帮互助

GESP/CSP 认证学习微信公众号
GESP/CSP 认证学习微信公众号
本文由作者按照 CC BY-NC-SA 4.0 进行授权