Ich war Jersey 2.25
Client mit Jackson
, ich konfiguriert alles richtig in Jersey, funktionierte es normalerweise auf meiner Entwicklungsmaschine, wenn ich es in einer Testklasse lief, aber Jersey-Client konnte nie Stellen Sie eine Verbindung zu einem bestimmten Host her, den wir in unserer STG-Umgebung implementiert haben, und lösen Sie immer eine Lese-Timeout-Ausnahme aus.Jersey Client gibt Lese-Timeout, aber Apache HTTP Client verbindet normalerweise
Ich weiß auch, dass das Problem nicht in unserer Umwelt ist, weil ich eine Verbindung herstellen kann curl
Verwendung Aber wenn zu Httpclient schaltet es funktionierte normal.
Dies ist, wie wir unser Jersey-Client erstellt:
Client client = ClientBuilder.newBuilder()
.register(JacksonFeature.class)
.property(ClientProperties.CONNECT_TIMEOUT,5000)
.property(ClientProperties.READ_TIMEOUT,15000)
.build();
Der einzige Unterschied hier ist der Ablauf der Anwendung, und auch die große Veränderung, die in der Strömung geschieht, den die Verbindung, dass irgendwo beeinflussen könnte vor Aufruf der Jersey-Client eine andere Klasse ein Proxy in der Systemkonfiguration setzt:
System.setProperty("http.proxyHost",strProxyHost);
System.setProperty("http.proxyPort",strProxyPort);
System.setProperty("https.proxyHost",strProxyHost);
System.setProperty("https.proxyPort",strProxyPort);
jedoch wir eine Verbindung normalerweise unter Verwendung von Httpclient herstellen können:
HttpConnectionManagerParams params = new HttpConnectionManagerParams();
params.setConnectionTimeout(5000);
params.setSoTimeout(10000);
HttpConnectionManager manager = new SimpleHttpConnectionManager();
manager.setParams(params);
HttpClient httpClient = new HttpClient(manager);
Wir verwenden HTTPClient 3, weil ein Teil dieser App veraltet ist und wir die Version nicht aktualisieren können, aber sie funktioniert normal.
Was könnte dieses Verbindungsproblem mit Jersey verursachen? Gibt es etwas Globales, das Jersey liest, wenn es versucht zu verbinden?
Und können wir das überhaupt überschreiben? – engma