Во-первых, чтобы убедиться, что ваш Restlet использует HttpClient от Apache для соединений, вам нужно иметь 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 позаботится об этом за вас.Рестлет использует HttpClient ThreadSafeClientConnManager
, описанный здесь .Упоминается поддержка постоянных соединений по этой ссылке.Кажется, что этот объект также позаботится о ваших проблемах объединения.Вы можете использовать один и тот же экземпляр ClientResource
, чтобы воспользоваться этим.Я не сразу осведомлен о политике безопасности потоков ClientResource
, но надеюсь, что она безопасна для потоков.