Ошибка HTTP 413 при использовании весенней загрузки с Angular 4JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ошибка HTTP 413 при использовании весенней загрузки с Angular 4

Сообщение Anonymous »

Моя система состоит из приложения Angular, которое взаимодействует с конечной точкой REST (POST) в приложении весенней загрузки.
В Spring boot настроено использование Jetty в качестве встроенного сервера. Приложение Angular имеет код TypeScript, который вызывает конечную точку REST и отправляет объект json в качестве полезной нагрузки. Размер объекта json будет варьироваться от 1 МБ до 10 МБ в зависимости от выбора пользователя в браузере.
Мое приложение весенней загрузки работает на виртуальной машине Azure под управлением Linux (CentOS).
Для некоторых запросов я получите ошибку HTTP 413: размер запроса слишком велик.
Я провел несколько поисков и нашел 2 механизма для настройки приложения весенней загрузки для преодоления этого ограничения.

Вариант 1.
Измените ограничение размера запроса в application.properties, используя это свойство
server.jetty.max-http-post-size=20971520 # Максимальный размер в байтах сообщения HTTP или содержимого размещения.

Вариант 2
Переопределить maxFormContentSize причала, используя некоторый Java-код в основном классе приложения

Код: Выделить всё

@Bean
public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory() {
JettyEmbeddedServletContainerFactory jettyContainer =
new JettyEmbeddedServletContainerFactory();
org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer serverContainer = (org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer)jettyContainer.getEmbeddedServletContainer();
serverContainer.getServer().setAttribute("org.eclipse.jetty.server.Request.maxFormContentSize", "20971520");
return jettyContainer;
}
Ни один из этих вариантов не работает, и я все равно получаю сообщение об ошибке, когда определенные запросы большие.

Есть ли лучший способ решить эту проблему?

Примечание. Эту ошибку я вижу только в среде виртуальных машин Azure, на которой работает CentOS. На моем компьютере под управлением Windows 10 я не вижу этой ошибки.

Обновление: я заметил, что при перезагрузке веб-сервера самый первый запрос проходит, но последующие запросы терпят неудачу. Это говорит о том, что на сервере есть какой-то буфер или кеш, который не очищается вовремя. Правильно ли я понимаю?

Подробнее здесь: https://stackoverflow.com/questions/492 ... -angular-4
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»