Wildfly 9: настройка Undertow путем программирования [max-post-size] вместо изменения standalone.xml

Мне нужно увеличить max-post-size моей конфигурации отвода, потому что я получил следующее исключение

java.io.IOException: UT000020: Connection terminated as request was larger than 10485760 
at io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize(FixedLengthStreamSourceConduit.java:168) 

и мне нужны почтовые запросы с большей полезной нагрузкой.

Тем не менее, я знаю, что я мог бы адаптировать standalone.xml, но я не смог успешно понять, как я могу это сделать программно или хотя бы в web.xml (мне нужно иметь возможность поместить изменение в артефакт сборки, а не в конфигурации сервера).

Изменить:
я использую почтовые запросы с методами jax-rs @Post. Если это возможно, например. аннотировать размер полезной нагрузки для каждого запроса, это также было бы нормально, поскольку есть только несколько запросов, требующих включения большего размера полезной нагрузки.

Кто-нибудь может указать мне, что я могу сделать?
Заранее спасибо!


person badera    schedule 06.09.2016    source источник
comment
I need to be able to put the change in the build artifact rather than in the server configuration) - почему так? Вы можете написать это изменение с помощью инструмента jboss-cli.   -  person Steve C    schedule 07.09.2016
comment
Потому что это предпочтительный способ работы с переносимыми приложениями, размещенными в облаке. Это важная «лучшая практика».   -  person badera    schedule 07.09.2016
comment
Мне было бы интересно узнать, где вы это услышали. Как вы развертываете свое приложение?   -  person Steve C    schedule 07.09.2016
comment
Вы также можете рассмотреть возможность использования WildFly Swarm для этой цели. Это объединяет ваше приложение, биты WIldFly, которые вы используете, и его конфигурацию в один исполняемый файл jar.   -  person Steve C    schedule 07.09.2016
comment
@Steve C: Вы уходите от темы. Вопрос ясен и имеет смысл. Мне нужно решение для этого сценария, если оно есть; ничего больше.   -  person badera    schedule 07.09.2016
comment
Я не думаю, что он настолько не в теме. Вам нужен способ определить max-post-size через ваше приложение. WildFly Swarm может это сделать.   -  person James R. Perkins    schedule 07.09.2016
comment
Я не могу использовать Swarm, потому что предоставляется инфраструктура.   -  person badera    schedule 07.09.2016


Ответы (2)


Я не думаю, что это возможно с аннотацией. Вам придется изменить атрибут max-post-size в слушатель. Изменение слушателя требует перезагрузки, поэтому это невозможно из аннотации.

С CLI по умолчанию http-listener команда будет:

/subsystem=undertow/server=default-server/http-listener=default:write-attribute(name=max-post-size, value=20971520)
person James R. Perkins    schedule 07.09.2016
comment
Нет ли способа настроить прослушиватель сервлета в файле web.xml? Я нашел, как настроить размер составных тел и т. Д., Но не максимальный размер поста. - person badera; 07.09.2016
comment
Не то, что я знаю, так как это JAX-RS. Если это был сервлет, вы можете использовать аннотацию javax.servlet.annotation.MultipartConfig. Возможно, что-то подобное сработает, хотя stackoverflow.com/a/20883976. - person James R. Perkins; 07.09.2016

Откройте консоль администратора, нажмите «Конфигурация», нажмите «Подсистема», нажмите «web/http-undertow», нажмите «http HTTP-сервер-> defual-server», измените максимальный размер сообщения.

person KP Singh    schedule 28.09.2017
comment
Вопрос заключался в том, как это сделать с помощью программирования, а не путем настройки конкретной конфигурации wildfly. -1 - person badera; 28.09.2017