Obwohl die normale Verwendung für HttpClient funktioniert, habe ich Schwierigkeiten, meinen Kopf um den Connection Manager Teil zu wickeln. Weder der BasicHttpClientConnectionManager noch der PoolingHttpClientConnectionManager scheinen meinen Anwendungsfall zu erfüllen. Ich verwende einen JEE-Anwendungsserver und verwende HttpClient, um Restdienste zu nutzen.Wie verwende ich den Apache HttpClient ohne Manager?
Vom documentation:
BasicHttpClientConnectionManager ist ein einfacher Verbindungsmanager, der nur eine Verbindung zu einem Zeitpunkt hält. [...] Diese Connection Manager-Implementierung sollte in einem EJB-Container verwendet werden.
Aber ich möchte einige Pooling tun, und vorzugsweise meine eigenen Pooling (z. B. JCA-Adapter). Ich möchte einfach einen HttpClient erstellen und habe meinen eigenen separaten Pool mit HttpClients ohne den Verbindungsmanager. Irgendwelche Vorschläge oder Lösungen?
Interessante genommen basiert. Das Problem, das ich habe, ist, dass ich einen echten httpclient haben möchte, damit ein Framework wie Spring Resttemplate es benutzen kann. Ich kann nicht sehen, wie das in diesem Fall funktionieren würde. – user1120821
Es gibt nichts, das daran gehindert wird, CloseableHttpClient zu erweitern und seine #doExecute-Methode nach Belieben zu implementieren. Die einzige nicht-triviale Aufgabe wäre wahrscheinlich, CloseableHttpResponse zu implementieren und die ordnungsgemäße Freigabe der zugrunde liegenden Verbindung zu gewährleisten, die dem Antwortstream – oleg
zugeordnet ist. So könnten wir doExecute an den HttpRequestExecutor delegieren und die Antwort in unserem eigenen HttpResponseProxy umbrechen. Außerdem müsste ich etwas mit ssl-Verbindungen machen, aber ich kann sehen, worauf Sie hinauswollen. Vielen Dank! – user1120821