Пытаюсь загрузить файл на сервер, с которым соединяюсь по WebDAV протоколу.
Получается загружать маленькие файлы. А вот файлы в районе 50КБ (+-5КБ) уже с большой вероятностью пересылаться не будут (но могут, раз на раз не приходится). Файлы с большим весом соответственно не передаются вовсе.
Самая частая ошибка:
Exception in thread "main" java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
Есть ещё такая:
Exception in thread "main" java.net.SocketException: Connection reset by peer: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
Но её получить труднее (выскакивает в тех же условиях).
Код запроса на сервер:
byte[] data = getDataForRequest();
//ByteArrayEntity byteArrayEntity = new ByteArrayEntity(data);
BasicHttpEntity entity = new BasicHttpEntity();
HttpPut httpPut = new HttpPut(file);
//httpPut.setEntity(new BufferedHttpEntity(byteArrayEntity));
ByteArrayInputStream bis = new ByteArrayInputStream(data);
entity.setContent(bis);
entity.setContentLength(data.length);
httpPut.setEntity(new BufferedHttpEntity(entity));
setCommonHeaders(httpPut);
HttpResponse response = getClient().execute(HTTP_HOST, httpPut);
Прим.: Используется библиотека Apache HttpComponents
В чём может быть проблема? Напоминаю, что код работает для маленьких файлов.