web-dev-qa-db-fra.com

Forme trop grande exception

Lorsque j'envoie un fichier volumineux à l'aide d'une demande de publication, le système affiche une exception:

Java.lang.IllegalStateException: Form too large1105723>200000
at org.mortbay.jetty.Request.extractParameters(Request.Java:1404)
at org.mortbay.jetty.Request.getParameter(Request.Java:749)......

Lorsque je recherche de l'aide à ce sujet dans Google, ils m'apportent de l'aide, par exemple, webappcontext.setMaxFormContentSize(5000000);

J'utilise ce code mais le problème n'est pas résolu

J'utilise aussi le code jettyServer.setAttribute("org.mortbay.jetty.Request.maxFormContentSize", 5000000);

Mais aucun résultat

Note: -J'utilise Jetty-6.1.0

27
Narendra nnvd

Essayez de définir les propriétés du système via jetty.xml

    <Call class="Java.lang.System" name="setProperty">
      <Arg>org.mortbay.jetty.Request.maxFormContentSize</Arg>
      <Arg>500000</Arg>
    </Call>

ok vous pouvez le configurer depuis votre application web 

Ajoutez le fichier WEB-INF/jetty-web.xml dans votre application Web Et configurez le paramètre dans ce fichier:

  <?xml version="1.0"?>
  <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
  "http://jetty.mortbay.org/configure.dtd">

  <Configure id="WebAppContext" class="org.mortbay.jetty.webapp.WebAppContext">
          <Set name="maxFormContentSize" type="int">600000</Set>
  </Configure>

Document

Version 7 ou supérieure

Depuis la version 7, les classes de Jetty ont été déplacées vers un package différent. Vous devez remplacer org.mortbay... par org.Eclipse... (Merci à David pour son commentaire).

34
Jigar Joshi
import org.mortbay.jetty.Server;
//... other code here...//
int port = 8080;
Server server = new Server(port);
server.setAttribute("org.mortbay.jetty.Request.maxFormContentSize", -1);

Ce code fonctionne sur jetty 6.0.2 que j'utilise.
La taille de "-1" signifie que le formulaire n'a pas de limite. J'ai essayé d'envoyer un formulaire de grande taille 20 000 000 octets et je n'ai rencontré aucun problème.
Pour les versions Eclipse de Jetty (jetty 7), vous devez utiliser le code suivant:

import org.Eclipse.jetty.server.Server;
//... other code here...//
int port = 8080;
Server server = new Server(port);
server.setAttribute("org.Eclipse.jetty.server.Request.maxFormContentSize", -1);
10

Malheureusement, je ne suis pas en mesure de modifier jetty.xml. J'ai donc simplement défini quelques options pour ajuster maxFormContentSize de la manière suivante:

JVM_OPTS="$JVM_OPTS -Dorg.Eclipse.jetty.server.Request.maxFormContentSize=5000000"

Cela existe dans le script Shell que nous utilisons pour lancer notre instance de Solr.

5
seth

Plus de documentation sur la taille du formulaire: http://wiki.Eclipse.org/Jetty/Howto/Configure_Form_Size

4
volni

Je suis également tombé sur ce problème (exécuter Jetty dans une autre application, je n'utilise donc pas jetty.xml).

J'ai utilisé la méthode setMaxFormContentSize sur la classe ContextHandler, qui a corrigé l'exception "formulaire trop grand". (Voir http://wiki.Eclipse.org/Jetty/Tutorial/Embedding_Jetty#Setting_a_ServletContext pour un exemple de création/utilisation d'un gestionnaire de contexte).

3
Ash
            <!-- Development Jetty -->
        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-maven-plugin</artifactId>
            <version>8.1.8.v20121106</version>
            <configuration>
                <scanIntervalSeconds>1</scanIntervalSeconds>
                <webApp>
                    <contextPath>/${project.build.finalName}</contextPath>
                </webApp>
                <systemProperties>
                    <systemProperty>
                        <name>org.Eclipse.jetty.server.Request.maxFormContentSize</name>
                        <value>10485760</value>
                    </systemProperty>
                </systemProperties>
            </configuration>
        </plugin>

Travail pour jetty 8 dans le plugin maven

2
Timmy Chiu
webappcontext.getServletContext().getContextHandler() .setMaxFormContentSize(10000000);
2
Narendra nnvd

J'utilise jetty 9.2.3.v20140905, et j'ai corrigé le problème, utilisez ce qui suit:

  • __unicode__

<plugin>
  <groupId>org.Eclipse.jetty</groupId>
  <artifactId>jetty-maven-plugin</artifactId>
  <version>9.2.3.v20140905</version>
  <configuration>
    <jettyXml>
      src/main/resources/jetty/jetty.xml
    </jettyXml>
  </configuration>
</plugin>

  • configure jetty.xml

<Configure id="Server" class="org.Eclipse.jetty.server.Server">
  <Call name="setAttribute">
    <Arg>org.Eclipse.jetty.server.Request.maxFormContentSize</Arg>
    <Arg>-1</Arg>
  </Call>
</Configure>

1
guvivi

Aucune des solutions ci-dessus n'a fonctionné pour moi, 

Donc, pour que cela fonctionne, je définis la propriété système avant de créer le serveur, plutôt que de le définir comme attribut du serveur

 System.setProperty("org.Eclipse.jetty.server.Request.maxFormContentSize", "500000000");

 Server server = ServerFactory.createServer(Host, port, contextPath, war);
1

Selon l'âge de votre version de Jetty utilisée (dans mon cas, jetty-5.1.14 intégrée dans Eclipse Equinox), il se peut également que la propriété doive être - org.mortbay.http.HttpRequest.maxFormContentSize.

De: org.mortbay.http.HttpRequest

/**
 * Max size of the form content. Limits the size of the data a client can Push at the server.
 * Set via the org.mortbay.http.HttpRequest.maxContentSize system property.
 */
public static int __maxFormContentSize = Integer.getInteger(
        "org.mortbay.http.HttpRequest.maxFormContentSize", 200000).intValue();

Vous devez donc faire quelque chose comme ceci dans votre application au démarrage pour définir la valeur:

System.setProperty("org.mortbay.http.HttpRequest.maxFormContentSize", "10000000");
1
Christoph

Peut-être à cause de changements dans Jetty depuis la version 7, mais je n'ai eu que du succès, comme ça:

dans jetty-web.xml, ajoutez ce qui suit à l'objet Serveur (1000000 est un exemple de taille, obv)

<Call name="setAttribute">
      <Arg>org.Eclipse.jetty.server.Request.maxFormContentSize</Arg>
      <Arg>1000000</Arg>
</Call>

fichier complet peut ressembler à quelque chose comme le mien

<Configure id="Server" class="org.Eclipse.jetty.server.Server">
    <Call name="setAttribute">
      <Arg>org.Eclipse.jetty.server.Request.maxFormContentSize</Arg>
      <Arg>1000000</Arg>
    </Call>

    <Ref id="DeploymentManager">
          <Call id="webappprovider" name="addAppProvider">
            <Arg>
(...)

ref http://wiki.Eclipse.org/Jetty/Howto/Configure_Form_Size

0
jsh

Démarrer Jenkins en ajoutant un argument en ligne de commande
- Dorg.Eclipse.jetty.server.Request.maxFormContentSize = 500000 

i.e Java -Dorg.Eclipse.jetty.server.Request.maxFormContentSize = 500000 -jar jenkins.war

0
Manoj

Si vous utilisez Jetty en mode intégré, essayez ceci.

    ServletContextHandler servletHandler = new ServletContextHandler(ServletContextHandler.SESSIONS);
    servletHandler.setMaxFormContentSize(1024*1024*1024);//size you want to allow.
0
riversun

Si vous utilisez Eclipse/spring, ajoutez ce qui suit aux arguments vm - Dorg.mortbay.jetty.Request.maxFormContentSize = -1

0
C oneil

J'ai rencontré un problème similaire sur ActiveMQ, donc j'ai dû modifier le fichier jetty.xml et ajouter 

  <property name="maxFormContentSize" value="-1" /> 

à la propriété de gestionnaire.

de:-

 <property name="handler">
 <bean id="sec" class="org.Eclipse.jetty.server.handler.HandlerCollection">
 <property name="handlers">
 <list>
 <bean class="org.Eclipse.jetty.webapp.WebAppContext">
  <property name="contextPath" value="/admin" /> 
  <property name="resourceBase" value="${activemq.home}/webapps/admin" /> 
  <property name="logUrlOnStart" value="true" /> 
  </bean>

à 

 <property name="handler">
 <bean id="sec" class="org.Eclipse.jetty.server.handler.HandlerCollection">
 <property name="handlers">
 <list>
 <bean class="org.Eclipse.jetty.webapp.WebAppContext">
  <property name="contextPath" value="/admin" /> 
  <property name="resourceBase" value="${activemq.home}/webapps/admin" /> 
  <property name="logUrlOnStart" value="true" /> 
  <property name="maxFormContentSize" value="-1" /> 
  </bean>
0
user2306718