
[英]Configuring a fall back datasource in RESTLet DAO Client Server Architecture In Java
[英]Configuring HttpClient for usage as Restlet client
我无法为我的客户端代码配置Restlet。 我正在使用Restlet 2和HttpClient 4.我将扩展jar和HttpClient jar添加到构建路径,它似乎工作。
但是,我不知道如何详细配置它。 我没有手动创建任何客户端,而是使用ClientResource
进行交互,这是我直接使用Restlet的唯一部分。 客户端的具体实例似乎隐藏在框架实现中。 我发现了一些如何配置客户端的提示,但它们都是为Restlet 1.x编写的。
详细地说,我想配置以下部分:
clientResource.getClientInfo().setAgent(…)
不起作用。 ClientResource
创建一个新的连接,这不是很有效。 当然,我已经看过HttpClientHelper ,但我不知道在哪里以及如何添加它。 已经搜索了文档,但没有点击。
感谢帮助!
首先,为了确保您使用Apache的HttpClient进行连接,您需要在类路径上使用org.restlet.ext.httpclient.jar。 其次,您是否将Context
传递给ClientResource
的构造函数? 如果不是,您将需要:
final Context context = new Context();
context.getParameters().set("maxConnectionsPerHost", "20");
final ClientResource requestResource = new ClientResource(context, "http://localhost:8182/request");
requestResource.getClientInfo().setAgent("Example-Client/1.0");
这会处理你感兴趣的maxConnectionsPerHost
设置。另外,调用setAgent
对我来说正如预期的那样工作。 我不确定你的实例中可能存在什么问题。
关于持久连接,似乎HttpClient会为您解决这个问题。 Restlet使用此处描述的HttpClient的ThreadSafeClientConnManager
。 它提到了对该链接的持久连接的支持。 看来这个对象也会照顾你的池问题。 您可能希望重用ClientResource
的相同实例来利用此功能。 我没有立即意识到ClientResource
的线程安全策略,但我希望它是线程安全的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.