Как изменить настройки Jetty через SparkJava? / Слишком большое исключение формы / org.eclipse.jetty.server.Request.maxFormContentSize

Я использую SparkJava 2.2, который использует Jetty 9.0.2.

Я получаю исключение "Слишком большая форма", которое выбрасывает Джетти. Я уже знаю, как решить эту проблему, если бы я использовал Jetty напрямую:

Слишком большое исключение

http://www.eclipse.org/jetty/documentation/current/setting-form-size.html

ПРОБЛЕМА:

Теперь мне нужно найти способ изменитьorg.eclipse.jetty.server.Request.maxFormContentSize установка через SparkJava. Есть ли способ сделать это?

Я должен отметить, что другие методы (JVM_OPTS, System.setProperty) не работают для меня по некоторым причинам. Я все еще получаю то же исключение.

Трассировки стека:

[qtp1858644635-27] ERROR spark.webserver.MatcherFilter -
java.lang.IllegalStateException: Form too large 308913>200000
    at org.eclipse.jetty.server.Request.extractParameters(Request.java:334)
    at org.eclipse.jetty.server.Request.getParameterMap(Request.java:765)
    at javax.servlet.ServletRequestWrapper.getParameterMap(ServletRequestWrapper.java:193)
    at spark.QueryParamsMap.<init>(QueryParamsMap.java:59)
    at spark.Request.initQueryMap(Request.java:364)
    at spark.Request.queryMap(Request.java:349)
    at spark.webserver.RequestWrapper.queryMap(RequestWrapper.java:213)
    at com.xyz.analytics.webservice.RequestTools.getRequestQueryMap(RequestTools.java:27)
    at com.xyz.analytics.webservice.RequestTools.getMandrillQueryParams(RequestTools.java:22)
    at com.xyz.analytics.webservice.Endpoints.lambda$initiateEndpointsAndExceptionHandlers$2(Endpoints.java:61)
    at com.xyz.analytics.webservice.Endpoints$Lambda$3/1485697819.handle(Unknown Source)
    at spark.SparkBase$1.handle(SparkBase.java:311)
    at spark.webserver.MatcherFilter.doFilter(MatcherFilter.java:159)
    at spark.webserver.JettyHandler.doHandle(JettyHandler.java:60)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:179)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:136)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
    at org.eclipse.jetty.server.Server.handle(Server.java:451)
    at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:252)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:266)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.run(AbstractConnection.java:240)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:596)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:527)
    at java.lang.Thread.run(Thread.java:745)
Редактировать:

Я должен отметить, что другие методы (JVM_OPTS, System.setProperty) не работают для меня.

Ну, отладчик даже не останавливается на любой точке останова, установленной вorg.eclipse.jetty.server.handlerContextHandler... Плюс, когда он останавливается наorg.eclipse.jetty.server.Request точки останова, свойство _context равно нулю. Кажется, SparkJava обрабатывает это по-другому. Тупик.

Запрос делает еще одну вещь перед установкойmaxFormContentSize = 200000;, Он проверяет _channel.getServer (). GetAttribute ("org.eclipse.jetty.server.Request.maxFormContentSize"). За исключением того, что коллекция атрибутов Сервера пуста ... И я не вижу способа добавить какой-либо атрибут. Сервер Jetty создается SparkBase.init (), который вызывает SparkServer.ignite (). Но это нам мало помогает. Нелегко "взломать", чтобы сделать наши собственные корректировки. Это кажется довольно безнадежным.

Ответы на вопрос(3)

Ваш ответ на вопрос