![](/img/trans.png)
[英]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.