Что вызывает java.lang.IllegalStateException: сообщение слишком велико в tomcat/mod_jk

какая конфигурация должна быть изменена и где она живет, чтобы увеличить максимально допустимый размер сообщения?

Ответ 1

Apache Tomcat по умолчанию устанавливает ограничение на максимальный размер запросов HTTP POST, которые он принимает. В Tomcat 5 этот предел установлен в 2 МБ. Когда вы пытаетесь загрузить файлы размером более 2 МБ, эта ошибка может произойти.

Решение состоит в том, чтобы перенастроить Tomcat, чтобы принимать большие запросы POST, либо путем увеличения лимита, либо путем его отключения. Это можно сделать, отредактировав [TOMCAT_DIR]/conf/server.xml. Задайте параметр конфигурации Tomcat maxPostSize для HTTPConnector для большего значения (в байтах), чтобы увеличить лимит. Если установить значение 0, отключите проверку размера. Для получения дополнительной информации см. Справочник по конфигурации Tomcat.

Ответ 2

Это будет для других людей, я вижу, что вы связываете Apache HTTP и Tomcat (tomcat/mod_jk), в этом случае отредактируйте коннектор Coyote/JK2 AJP 1.3 так же, как вы это делаете для стандартного соединителя (Coyote HTTP/1.1), поскольку разъем AJP1.3 - это то, где Tomcat получает данные.

<!-- Define a Coyote/JK2 AJP 1.3 Connector on port 8009 -->
<Connector port="8009" 
           enableLookups="false" redirectPort="8443" debug="0"
           protocol="AJP/1.3" maxPostSize="0"/>

Ответ 3

Основной причиной исключения IllegalStateException является сервлет Java, который пытается записать в выходной поток после того, как ответ был зафиксирован.

Следите за тем, чтобы контент не добавлялся в ответ после запроса перенаправления/диспетчеризации.