Ich habe einen Tomcat-Server und einen Java-Client mit java.net.HttpUrlConnection, die Nachrichten senden. Normalerweise funktioniert alles gut, aber es gibt einige Anfragen, die der Client sendet, die mit einem 400 HTTP-Fehler beantwortet werden.
Das Problem ist, dass in den Tomcat-Protokollen nichts angezeigt wird. Ich habe sogar versucht, .level = fine und andere Log-Level-Änderungen zu setzen, und es wurde immer noch keine Ausnahme oder Fehler angezeigt.
Ich vermute schlechte Kodierung in der Anfrage oder so etwas, aber Tomcat gibt mir keine Hinweise.
Übrigens ist die URL in Ordnung. Ich sehe auch, dass die Anfrage den Server erreicht, nicht aber mein Servlet. Es scheint, Tomcat bekommt die Nachricht, erklärt es schlecht und protokolliert nicht, was falsch ist.
Kann jemand an einen Weg denken, den 400 Grund zu sehen? Danke
Ich habe es endlich herausgefunden - Ich sah, dass die Größe der gesamten Header + Größe der in OutputStream geschriebenen Daten außergewöhnlich hoch war - und so habe ich im Tomcat-HTTP-Connector definiert:
Anschluss port="8080" protocol="HTTP 1/1" maxPostSize="10485760" maxHttpHeaderSize="10485760" /
Es ist eine Schande, dass Tomcat mir das nicht erzählt, und ich musste raten - ich werde dies als Fehler melden.
Danke
Tatsächlich war dies auch die Lösung für den Fehler "http 400 ungültige Anforderung" in Internet Explorer 11.
Hinzufügen von
an den Connector-Knoten von Tomcat's server.xml.
Scheint meine Ajax-Anfrage (extjs) auf IE11 einen größeren Anfrage-Header als die Standard-Header-Größe (8192 = 8 KB) auf Tomcat 6?
Bei IE10 und Chrome ist dieses Problem nicht aufgetreten.