У меня есть технический документ от наших клиентов, в котором говорится, что их сервер будет принимать POST-запрос с объемом сообщения до 2,5 МБ. Я написал пакетный процессор, который берет некоторые данные и генерирует из них куски JSON с заранее установленным пределом размера. Затем он последовательно отправляет их на сервер, используя некоторые логи повторных попыток c et c ..
Если я установлю ограничение размера в 2 000 000 байт, все будет работать нормально. Если я установлю это 2 400 000 байтов, процессор bach бросает следующий стек. (Трудно было сказать, имели ли они в виду десятичные или двоичные «МБ», поэтому я старался не рисковать, а также оставить большой запас для ошибок)
Exception in thread "main" com.sun.jersey.api.client.ClientHandlerException: java.io.IOException: Error writing to server
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:155)
at com.sun.jersey.api.client.Client.handle(Client.java:652)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:682)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:570)
at ***************.BatchProcessor.sendBatchRequest(BatchProcessor.java:55)
Есть ли какое-то ограничение для размер может иметь тело клиента Джерси? Могу ли я изменить это? Кажется, это проблема отправляющей стороны.
Я отправил пакет на простой тестовый сервер, который я реализовал с использованием.
import com.sun.net.httpserver.HttpServer;
Возможно, у него есть какие-то ограничения. Но там не было ничего подозрительного, и сообщение об ошибке, кажется, не соответствует клиенту. Есть идеи?