Quelle est la taille maximale des données que je peux envoyer dans une seule variable HttpURLConnection
à Tomcat
? Y at-il une limitation pour la taille de la demande?
La section connecteur a le paramètre
maxPostSize
La taille maximale en octets du POST qui sera traitée par l'analyse du paramètre FORM FORM du conteneur. La limite peut être désactivée en définissant cet attribut sur une valeur inférieure ou égale à 0. S'il n'est pas spécifié, cet attribut est défini sur 2097152 (2 mégaoctets).
Une autre limite est:
maxHttpHeaderSize Taille maximale de l'en-tête HTTP de requête et de réponse, spécifiée en octets. S'il n'est pas spécifié, cet attribut est défini sur 4096 (4 Ko).
Vous les trouvez dans
$Tomcat_HOME/conf/server.xml
Vous devez modifier deux limites possibles:
Dans conf\server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="67589953" />
Dans webapps\manager\WEB-INF\web.xml
<multipart-config>
<!-- 52MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
Pour ajouter des réponses, App Server Apache Geronimo 3.0 utilise Tomcat 7 comme serveur Web. Dans cet environnement, le fichier server.xml se trouve à l'adresse <%GERONIMO_HOME%>/var/catalina/server.xml
.
La configuration prend effet même lorsque Geronimo Console à Application Server->WebServer->TomcatWebConnector->maxPostSize
affiche toujours 2097152 (valeur par défaut).
voir ceci https://serverfault.com/a/805783/162909
si vous installez uniquement le package Tomcat7, le gestionnaire n'est pas installé . besoin d'installer Tomcat7-admin
il ajoute webapps\manager\WEB-INF\web.xml
avec limite de téléchargement de 50 Mo par défaut
Bien que d'autres réponses incluent certaines des informations suivantes, il s'agit du minimum absolu qui doit être modifié sur les instances EC2, en ce qui concerne le déploiement de fichiers WAR volumineux , et qui risque le moins de poser problème lors de futures mises à jour. Je rencontre ces limites environ tous les deux ans en raison de la taille sans cesse croissante du fichier WAR Jenkins (maintenant ~ 72 Mo).
Plus précisément, cette réponse est applicable si vous rencontrez une variante de l'erreur suivante dans catalina.out
:
SEVERE [https-jsse-nio-8443-exec-17] org.Apache.catalina.core.ApplicationContext.log HTMLManager:
FAIL - Deploy Upload Failed, Exception:
[org.Apache.Tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException:
the request was rejected because its size (75333656) exceeds the configured maximum (52428800)]
Sur les instances Amazon EC2 Linux, le fichier only à modifier à partir de l'installation par défaut de Tomcat (Sudo yum install Tomcat8
) est le suivant:
/usr/share/Tomcat8/webapps/manager/WEB-INF/web.xml
Par défaut, la taille maximale du téléchargement est exactement de 50 Mo:
<multipart-config>
<!-- 50MB max -->
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
Il ne faut modifier que deux valeurs (max-file-size
et max-request-size
):
<multipart-config>
<!-- 100MB max -->
<max-file-size>104857600</max-file-size>
<max-request-size>104857600</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
Lorsque Tomcat est mis à niveau sur ces instances, la nouvelle version du gestionnaire web.xml
sera placée dans web.xml.rpmnew
, de sorte que les modifications apportées au fichier d'origine ne seront pas écrasées lors de mises à jour ultérieures.