У меня есть приложение для Spring Boot, которое использует мульти-Upload для обновления иногда больших объемов файлов 10K+. В этих случаях я поражаю это исключение. Я предполагаю, что он смотрит на мой параметр «файлы» и видя, что это массив> 10K и помечает это исключение. Я также отправляю еще один параметр, который представляет собой массив строк, связанных со списком файлов, его размер - это количество файлов,> 10K < /p>
java.lang.IllegalStateException: More than the maximum number of request parameters (GET plus POST) for a single request ([10,000]) were detected. Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector.
at org.apache.tomcat.util.http.Parameters.addParameter(Parameters.java:204) ~[tomcat-embed-core-8.5.11.jar:8.5.11]
at org.apache.catalina.connector.Request.parseParts(Request.java:2860) ~[tomcat-embed-core-8.5.11.jar:8.5.11]
at org.apache.catalina.connector.Request.parseParameters(Request.java:3177) ~[tomcat-embed-core-8.5.11.jar:8.5.11]
at org.apache.catalina.connector.Request.getParameter(Request.java:1110) ~[tomcat-embed-core-8.5.11.jar:8.5.11]
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:381) ~[tomcat-embed-core-8.5.11.jar:8.5.11]
< /code>
Я понимаю исключение, но я пытаюсь выяснить, где в моем приложении. Я установил spring.http.multipart.max-file-size и spring.http.multipart.max-request-size там. Я не нахожу ничего эквивалентного для maxParameterCount < /code> в этом источнике. Загрузка (Tomcat Embedded), будет ли изменение также работать в среде Deploymenet, или это требует изменения конфигурации Tomcat? локально с пружинными ботинками. Я предполагаю, что, поскольку это изменяет встроенный экземпляр Tomcat, это не будет применяться к развернутой полной среде Tomcat - мне интересно, есть ли решение, которое будет работать в обоих экземплярах Tomcat. < /P>
@Configuration
public class TomcatCustomizationConfiguration {
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
final int maxHttpRequests = 50000;
TomcatEmbeddedServletContainerFactory tomcatFactory = new TomcatEmbeddedServletContainerFactory();
tomcatFactory.addConnectorCustomizers(connector -> connector.setMaxParameterCount(maxHttpRequests));
return tomcatFactory;
}
}
Подробнее здесь: https://stackoverflow.com/questions/439 ... pplication