Опубликовать большой объект JSON, используя запрос ajax

Мне нужна помощь с размещением большого объекта JSON на сервер с использованием ajax в angularjs. Когда я отправляю объект JSON с около 10000 записей в ArrayList с использованием почтового запроса, он принимается, и я получаю ответ на то же самое. Но когда я загружаю 30000 записей или более и пытаюсь отправить его с помощью ajax, он возвращает следующую ошибку: -

[io.undertow.request] (default task-5) UT005007: Request was not fully consumed

Как я могу это исправить?

Я использую Wildfly 10 и Java 8. Есть ли какой-либо параметр размера сообщения, который я могу увеличить?

Кажется, это максимальный предел, установленный вашим сервером для загрузки файлов.

varun sharma 28.03.2019 11:01
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
657
2

Ответы 2

Похоже, вы используете Отлив для получения запроса POST. Проверьте, какое значение имеет опция MAX_ENTITY_SIZE в вашей настройке, возможно, она была ограничена:

The default maximum size of a request entity. If entity body is larger than this limit then a java.io.IOException will be thrown at some point when reading the request (on the first read for fixed length requests, when too much data has been read for chunked requests). This value is only the default size, it is possible for a handler to override this for an individual request by calling io.undertow.server.HttpServerExchange.setMaxEntitySize(long size). Defaults to unlimited.

Как предложено в эта тема, это потенциально настраивается в Spring с использованием bean-компонента MultipartConfigFactory:

@Bean
public MultipartConfigElement multipartConfigElement() {
     MultipartConfigFactory factory = new MultipartConfigFactory();
     factory.setMaxFileSize("100MB");
     factory.setMaxRequestSize("100MB");
     return factory.createMultipartConfig();
}

Предложение @KarolDowbecki, скорее всего, сработает, но есть и другой способ. В файле standalone.xml, который вы используете, вы можете изменить:

<http-listener name = "default" socket-binding = "http" redirect-socket = "https" enable-http2 = "true"/>

к:

<http-listener name = "default" socket-binding = "http" redirect-socket = "https" enable-http2 = "true" max-post-size = "16777216"/>

увеличить, в данном случае, до 16 МБ. По умолчанию установлено значение 10 МБ как минимум на Wildfly 16.

В качестве альтернативы, если вы хотите написать сценарий, чтобы вам не приходилось вручную изменять standalone.xml, вы можете использовать jboss-cli и запустить:

/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=max-post-size,value=16777216)

Другие вопросы по теме