wie beitragsgröße einschränken, die in tomcat-8? Wie, um eine benutzerdefinierte Antwort für Sie?
Habe ich diese Konfiguration in mein server.xml Datei
<Connector URIEncoding="UTF-8" connectionTimeout="20000" maxHttpHeaderSize="65536" **maxPostSize="1024"** port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
Jedoch Anfragen, die mehr als 1 KB pass, wenn maxPostSize niemals gesetzt. Kann jemand empfehlen, was kann dazu führen, dass?
Andere Sache, ich würde gerne wissen, wie man einen benutzerdefinierten http-Antwort von tomcat wenn die post-Größe ist mehr als 1 KB
UPDATE
Da habe ich schon so lange in dieser Ausgabe. Ich hatte Gelegenheit, Einblick in den Quellcode von tomcat zu überprüfen, was passiert hier genau:
klicken Sie hier
Bemerkte ich aus Linien 2541 bis 2550, Sie sind mit getContentLength() obwohl in der Dokumentation sagt: "maxPostSize: Die maximale Größe in bytes". Wie kommt es, könnte dies in bytes? Es sieht mehr aus, um Zeichen zu zählen, um mich, und es kann getan werden, in der servlet-Seite. Kann mir jemand erklären, was ich hier vermisst?
- Sind Sie sicher, dass Sie Tests mit POST-Anforderung ? (und nicht ein)
- ja, ich bin mir sicher, dass tomcat-logs zeigen: 127.0.0.1 - - [27/Feb/2017:10:23:25 +0200] "POST /link/Link-HTTP/1.1" 200 210 es ist Also definitiv post. Ich sende sehr groß, um sicherzustellen, dass es mehr als 1KB auch.
- Haben Sie versucht, mit einem sehr niedrigen Konfiguration :
maxPostSize="1"
zum Beispiel, um zu sehen, wenn Sie die Konfiguration berücksichtigt ? - Ich habe versucht, mit maxPostSize="1" nun, und die Anfrage noch vorbei. Ich entfernte die gesamte Konfiguration der connector-Linie, um sicherzustellen, dass ich editting an der richtigen Stelle. Der link gab mir die Verbindung verweigert, so bin ich auf jeden Fall die Bearbeitung in der richtigen Stelle.
- Sind Sie sicher, dass der Antrag, den Sie senden hat
application/x-www-form-urlencoded
als Content-Type ? - Hier ist die header-Daten von der client-Seite: POST localhost:8080/link/Link HTTP/1.1 Accept-Encoding: gzip,deflate Content-Type: application/x-www-form-urlencoded Content-Length: 44503-Host: localhost:8080 Connection: Keep-Alive User-Agent: Apache-HttpClient/4.1.1 (java 1.5) Ich war in der Lage, diese info, wie ich verwendet, soapui, um die post. Ich versuche auch, vom browser aber nicht gut. Ich habe versucht, sowohl application/x-www-form-urlencoded " & text/xml;charset=UTF-8
- Ich habe auch versucht mit tomcat 7, aber ich hatte das gleiche problem. Das ist so komisch.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut tomcat-doc die maxPostSize ist 2M.
Wenn Sie würden ändern Sie die Standardwerte, ändern Sie dann in den Speicherort der Datei unten:
Beispiel:
Die Größe in bytes 6291456*(1024*1024)=6M
Hinweis: Bitte stellen Sie sicher, dass Sie den server neu starten, nachdem Sie die änderungen.
Standardmäßig HTTP-Container verwenden inputstream der HTTP-request-Objekt und verarbeiten die Daten als bytes. Wenn die Anforderung hat jede Kodierung zu verwenden , wird die Figur reader-Objekt .
https://tomcat.apache.org/tomcat-5.5-doc/servletapi/javax/servlet/ServletRequest.html#getInputStream()
Beim senden der Antwort auch, die content-Länge in Byte festgelegt. Legen Sie die Länge des Inhalts als bytes und entweder schreiben, als Zeichen oder bytes.
Server verarbeiten die Daten als bytes