[JAVA] Die Geschichte einer illegalen staatlichen Ausnahme in Jetty.

Einführung

Wenn ich versuche, POST-Daten mit Jetty zu empfangen, sieht das seltsam aus. Lass uns nachsehen.

Umgebung

Jetty embedded

        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>9.4.6.v20170531</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.eclipse.jetty.aggregate/jetty-all-server -->
        <dependency>
            <groupId>org.eclipse.jetty.aggregate</groupId>
            <artifactId>jetty-all-server</artifactId>
            <version>8.2.0.v20160908</version>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet</artifactId>
            <version>3.0.0.v201112011016</version>
        </dependency>

Variablen, die bereits verwendet werden können

Request baseRequest, HttpServletRequest request, HttpServletResponse response

Log

p1p2p3p4[Thu Jun 14 00:29:21 JST 2018][LowerLobby]:null
p6p1p2p3java.lang.IllegalStateException: STREAMED
	at org.eclipse.jetty.server.Request.getReader(Request.java:1149)
	at com.haniokasai.mc.SteadyMistress.web.handlers.srvtools.pluginmanager_handler.pluginmanager_handler(pluginmanager_handler.java:59)
	at com.haniokasai.mc.SteadyMistress.web.WebHandler.handle(WebHandler.java:63)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
	at org.eclipse.jetty.server.Server.handle(Server.java:564)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
	at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
	at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591)
	at java.lang.Thread.run(Thread.java:748)

Lösung

Was ist das für ein Typ?

Die Beschreibung wurde ziemlich schnell gefunden. ==>>http://apache-wicket.1842946.n4.nabble.com/java-lang-IllegalStateException-STREAMED-Consuming-JSON-fails-td3850442.html

This exception says "Don't use the reader but use the input stream because something (maybe header) has been already read from the stream".

Diese Ausnahme besagt: "Verwenden Sie den Eingabestream ohne den Reader, da der Stream bereits von etwas (wahrscheinlich dem Header) verwendet wird."

Hoho, das stimmt.

Mit anderen Worten, Sie müssen nicht den bereits vorbereiteten Pufferleser verwenden.

BufferedReader in = baseRequest.getReader();

Von

BufferedReader in = new BufferedReader( new InputStreamReader(request.getInputStream()));

TU es einfach! Der Fragesteller sagt!

das ist alles!

Recommended Posts

Die Geschichte einer illegalen staatlichen Ausnahme in Jetty.
Die Geschichte des Schreibens von Java in Emacs
Die Geschichte eines gewöhnlichen Othello in Java
Die Geschichte des Werfens von BLOB-Daten von EXCEL in DBUnit
[Docker] Eine Geschichte über einen Fehler beim Erstellen von Docker
Erklären Sie DI in einer fettleibigen Geschichte
[Java Edition] Geschichte der Serialisierung
Die Geschichte von @ViewScoped, die Speicher verschlingt
Die Geschichte von toString () beginnt mit der Übergabe eines Arrays an System.out.println
Reihenfolge der Verarbeitung im Programm
So ermitteln Sie die Länge einer Audiodatei mit Java
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Die Geschichte des Erwerbs von Java Silver in zwei Monaten von völlig unerfahrenen.
Die Geschichte der Begegnung mit Spring Custom Annotation
Holen Sie sich das Ergebnis von POST in Java
Die Identität der Schienenparameter [: id]
Die Geschichte der Aktualisierung des Docker-Containers von Sonar Qube
Rails Refactoring Geschichte vor Ort gelernt
Vergleichen Sie Elemente eines Arrays (Java)
Die Geschichte von RxJava, das unter NoSuchElementException leidet
Finden Sie mit Swift eine Annäherung an cosx
Schreiben Sie die Bewegung von Rakefile in das Runbook
Die Geschichte einer Android-Anwendung, mit der die Abtastfrequenz des Beschleunigungssensors angepasst werden kann
[Bestellmethode] Legen Sie die Reihenfolge der Daten in Rails fest
[Java] Behandlung von Java Beans in der Methodenkette
[Android] [Java] Verwalten Sie den Status der CheckBox von ListView
Von enum vor dem Schmied festgefahren
Über die Idee anonymer Klassen in Java
Eine Geschichte über das JDK in der Java 11-Ära
Eine Geschichte darüber, wie eine vorhandene Docker-Datei mit der GPU kompatibel gemacht werden kann
Messen Sie die Größe eines Ordners mit Java
Die Geschichte der Einführung der Ajax-Kommunikation in Ruby
Die Geschichte der Erhöhung der Spring Boot 1.5-Serie auf die 2.1-Serie
Spüren Sie den Lauf der Zeit auch in Java
Die Geschichte der Optimierung der Android-App mit libGDX
Die Geschichte des Hinzufügens der neuesten Node.js zu DockerFile
Die Geschichte der Initialisierung von Money :: Currency während des Testens
Importieren Sie Dateien derselben Hierarchie in Java
Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?
Verwendung von git mit der Leistung von jgit in einer Umgebung ohne git-Befehle
Schreiben Sie einen Test, indem Sie die Geschichte von Mr. Nabeats in der Welt mit Rubin umsetzen