Wiederverwendung von Jersey -Kundenverbindungen mit Chunked GZIP -AntwortJava

Java-Forum
Anonymous
 Wiederverwendung von Jersey -Kundenverbindungen mit Chunked GZIP -Antwort

Post by Anonymous »

Ich versuche, einen Jersey -Client (3.x) mit ApacheConnector zu verwenden, aber ich habe festgestellt, dass eine geschnittene Gzip -Antwort empfangen wird. Die Verbindung wird geschlossen, sobald die Antwort gelesen wird. Die Verbindung wird auch nach der Konfiguration eines Verbindungspools, der Strategie für die Keep-Alive-Alive und der Wiederverwendung nicht wiederverwendet. Noch nicht veröffentlicht, es ist geschlossen. /glassfish/jersey/apache/connector/apacheconnectionClosingStrategy.java#l75
request.abort();
Dies scheint jedoch korrekt mit nicht gzippierten Antworten zu funktionieren. Ist Jersey nicht erwartet, dass er mit Gzip -Chunked -Antworten funktioniert? Oder kann ich etwas tun, damit es hier richtig funktioniert?
Referenzcode:
PoolingHttpClientConnectionManager connectionManager2 = new PoolingHttpClientConnectionManager();
connectionManager2.setMaxTotal(100); // Maximum total connections
connectionManager2.setDefaultMaxPerRoute(100); // Maximum connections per route

final ClientConfig clientConfig = new ClientConfig();
clientConfig.connectorProvider(new ApacheConnectorProvider());
clientConfig.property(ApacheClientProperties.CONNECTION_MANAGER, connectionManager2);
clientConfig.property(ApacheClientProperties.KEEPALIVE_STRATEGY,
(ConnectionKeepAliveStrategy) (response, context) -> 60000);
clientConfig.property(ApacheClientProperties.REUSE_STRATEGY,
(ConnectionReuseStrategy) (response, context) -> true);

// Build the Jersey client
JERSEY_CLIENT = ClientBuilder.newClient(clientConfig);

final var request = JERSEY_CLIENT.target(getRequestUri()).request(MediaType.APPLICATION_JSON);
var response = request.post(Entity.entity(JsonUtil.toJsonString(requestBody), MediaType.APPLICATION_JSON));
var responseEntity = response.readEntity(String.class); // request abort and connection shutdown happens at this call.
< /code>
Ich habe versucht, Entity mit InputStream.class anstelle von String.class zu lesen, aber das scheint auch das gleiche Ergebnis zu erzielen, selbst wenn ich diesen InputStream schließe. Auch dieses Problem mit Jersey 3 und Jersey 2 sehen, wenn das hilft.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post