Форма слишком большого исключения

Когда я отправляю большой файл с использованием почтового запроса, система показывает исключение:

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)...... 

Когда я ищу помощь для этого в Google, они дают некоторую помощь, например, webappcontext.setMaxFormContentSize(5000000);

Я использую этот код, но проблема не решена

Также я использую код jettyServer.setAttribute("org.mortbay.jetty.Request.maxFormContentSize", 5000000);

Но никакого результата

Примечание: -Я использую Jetty-6.1.0

Попробуйте настроить свойства системы через jetty.xml

   org.mortbay.jetty.Request.maxFormContentSize 500000  

нормально, вы можете настроить его из своего веб-приложения

Добавьте файл WEB-INF / jetty-web.xml в свое веб-приложение и настройте параметр в этом файле:

     600000  

Документ

Версия 7 или выше

Начиная с версии 7 classы Jetty переместились в другой пакет. Вы должны заменить org.mortbay... на org.eclipse... (Спасибо Дэвиду за его комментарий).

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

Этот код работает на Jetty 6.0.2, который я использую.
Размер «-1» означает, что форма не имеет ограничений. Я попытался опубликовать форму больших 20 000 000 байт, и у меня не было проблем.
Для выпусков eclipse Jetty (причал 7) вы должны использовать следующий код:

 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); 

К сожалению, я не могу вносить какие-либо изменения в jetty.xml, поэтому вместо этого я просто установил некоторые параметры для настройки maxFormContentSize следующим образом:

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

Это существует в сценарии оболочки, который мы используем для запуска нашего экземпляра Solr.

Дополнительная документация по размеру формы: http://wiki.eclipse.org/Jetty/Howto/Configure_Form_Size

Я тоже столкнулся с этой проблемой (запуск Jetty встроен в другое приложение, поэтому я не использую jetty.xml).

Я использовал метод ContextHandler classа ContextHandler , который фиксировал исключение «слишком большая форма». (См. http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty#Setting_a_ServletContext для примера создания / использования обработчика контекста).

 webappcontext.getServletContext().getContextHandler() .setMaxFormContentSize(10000000); 
    org.mortbay.jetty jetty-maven-plugin 8.1.8.v20121106  1  /${project.build.finalName}    org.eclipse.jetty.server.Request.maxFormContentSize 10485760     

Работа для причала 8 в плагине maven

В зависимости от того, сколько лет используется ваша Jetty Version (в моем случае jetty-5.1.14, встроенной в Eclipse Equinox), также может быть, что свойство должно быть org.mortbay.http.HttpRequest.maxFormContentSize

От: 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(); 

Поэтому вам нужно сделать что-то подобное в своем приложении при запуске, чтобы установить значение:

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

Ни одно из вышеупомянутых решений не помогло мне,

Поэтому для выполнения этой работы я устанавливаю системное свойство перед созданием сервера, а не устанавливая его как атрибут сервера

  System.setProperty("org.eclipse.jetty.server.Request.maxFormContentSize", "500000000"); Server server = ServerFactory.createServer(host, port, contextPath, war); 

Я использую jetty 9.2.3.v20140905, и я исправил проблему, используя следующие:

  • confiure pom.xml
  org.eclipse.jetty jetty-maven-plugin 9.2.3.v20140905   src/main/resources/jetty/jetty.xml    

Возможно, из-за изменений в Jetty с версии 7, но у меня был только такой успех:

в jetty-web.xml, добавьте ниже к объекту Server (1000000 – примерный размер, obv)

  org.eclipse.jetty.server.Request.maxFormContentSize 1000000  

полный файл может выглядеть как мой

   org.eclipse.jetty.server.Request.maxFormContentSize 1000000     (...) 

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

Если вы работаете с eclipse / spring, добавьте ниже аргументы vm -Dorg.mortbay.jetty.Request.maxFormContentSize = -1

Я столкнулся с аналогичной проблемой в ActiveMQ, поэтому мне пришлось отредактировать файл jetty.xml и добавить

   

к свойству обработчика.

из:-

           

в

            

Запустите jenkins, добавив аргумент командной строки
-Dorg.eclipse.jetty.server.Request.maxFormContentSize = 500000

т.е. java -Dorg.eclipse.jetty.server.Request.maxFormContentSize = 500000 -jar jenkins.war

Если вы используете причал в встроенном режиме, попробуйте это.

  ServletContextHandler servletHandler = new ServletContextHandler(ServletContextHandler.SESSIONS); servletHandler.setMaxFormContentSize(1024*1024*1024);//size you want to allow. 
  • Как получить случайную строку текстового файла в Java?
  • Как преобразовать целое число цвета в шестнадцатеричную строку в Android?
  • преобразование растрового изображения Java в байтовый массив
  • Когда именно это безопасно для утечки для использования (анонимных) внутренних classов?
  • Может ли основной метод в Java возвращать что-то?
  • Основной метод не найден, даже если я его объявил
  • Android: как использовать AlarmManager
  • Какие языки программирования могут использоваться для разработки в Android?
  • Как вернуть массив из JNI в Java?
  • Импортирование двух classов с одинаковым именем. Как обращаться?
  • Установка значения свойства Singleton в Firebase Listener
  • Давайте будем гением компьютера.