Der maximale Formularwert in Jetty beträgt standardmäßig 200 KB. Spark verwendet Jetty, also ist es ähnlich.
Es scheint, dass es nur für Jetty verschiedene Einstellungsmethoden gibt, aber für Spark ist es ziemlich ärgerlich.
Ich werde die Details weglassen, aber die Methode ist wie folgt.
python
public class Main {
public static void main(String[] args) {
EmbeddedServers.add(EmbeddedServers.Identifiers.JETTY, new EmbeddedJettyFactory(new MyJettyServerFactory()));
get("/", () -> "Hello Spark!");
}
}
class MyJettyServerFactory implements JettyServerFactory {
/**
* Creates a Jetty server.
*
* @param maxThreads maxThreads
* @param minThreads minThreads
* @param threadTimeoutMillis threadTimeoutMillis
* @return a new jetty server instance
*/
@Override
public Server create(int maxThreads, int minThreads, int threadTimeoutMillis) {
Server server;
if (maxThreads > 0) {
int max = maxThreads;
int min = (minThreads > 0) ? minThreads : 8;
int idleTimeout = (threadTimeoutMillis > 0) ? threadTimeoutMillis : 60000;
server = new Server(new QueuedThreadPool(max, min, idleTimeout));
} else {
server = new Server();
}
server.setAttribute("org.eclipse.jetty.server.Request.maxFormKeys", 20000); //Maximale Anzahl von POST-Daten
server.setAttribute("org.eclipse.jetty.server.Request.maxFormContentSize", 5000000); //Maximalwert der POST-Daten
return server;
}
/**
* Creates a Jetty server with supplied thread pool
* @param threadPool thread pool
* @return a new jetty server instance
*/
@Override
public Server create(ThreadPool threadPool) {
return threadPool != null ? new Server(threadPool) : new Server();
}
}
Übrigens tritt kein Fehler auf, es sei denn, Sie erhalten den Wert des Formulars programmgesteuert. Was ist mit den Spezifikationen?