Я использую файл jar, реализующий пользовательскую функциональность, которая использует трикотаж как клиент REST (версия 2.22.1). Хотя все работает нормально для нескольких вызовов, для определенного HTTP-вызова я получаю сообщение «Ошибка: запись на сервер», , но только при работе в ubuntu.«Ошибка: запись на сервер» - только на ubuntu
Ошибка при запуске модульного теста на двух моих компьютерах разработки ubuntu. Мои компьютеры развития являются Ubuntu 16,04 с Oracle JDK:
~$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
$ java -version
java version "1.8.0_66"
Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
Запуск же тест из машины окна, не дает мне ошибку. На моем окна машины:
java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
StackTrace В Ошибка переполнения заключается в следующем:
javax.ws.rs.ProcessingException: java.io.IOException: Error writing to server at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:287) at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:684) at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:681) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:228) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444) at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:681) at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:437) at org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:326)
....
Caused by: java.io.IOException: Error writing to server at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:666) at sun.net.www.protocol.http.HttpURLConnection.writeRequests(HttpURLConnection.java:678) at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1534) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480) at org.glassfish.jersey.client.internal.HttpUrlConnector._apply(HttpUrlConnector.java:394) at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:285)
... 40 more
Я могу только предположить две причины ошибки:
- разность Jvm версии
- различные сетевые настройки между двумя операционными системами
Эта ошибка возникает при определенных запросах с повышенными большими нагрузками HTTP. Многие коллеги из разных должностей предположили, что это происходит во время больших HTTP-запросов, однако я не нашел ни одной публикации, предлагающей решение или связавшего его с Ubuntu специально.
Любые подсказки?
Какими будут сетевые параметры, влияющие на такие функции? Как я могу их изменить или адаптировать?
Может понадобиться конкретная конфигурация jvm?