Ich versuche, ein Bild auf ein Servlet hochzuladen, aber während des automatischen Testens fällt es immer wieder aus.
Weißt du, was das verursachen würde?
Hier ist der Code auf dem Server:
%Vor%Hier ist der Test:
%Vor%Hier ist die Ausgabe vom Server, wenn es fehlschlägt:
%Vor% Wir fangen die Ausnahme vom Bildupload und senden einen Antwortcode von 422 zurück an den Client, so dass wir beim Test imgResponse
== 422 erhalten, was ein Fehlerfall ist.
Hinweis: Dies geschieht nur manchmal Sie führen den Test durch.
Hier ist eine Schritt-für-Schritt-Konfiguration für das Hochladen von Dateien mit Apache Commons FileUpload:
1. Fügt Abhängigkeits-Jar für die folgende Komponente hinzu. Hier sind die Abhängigkeiten von maven:
pom.xml
%Vor%Wenn Sie maven nicht verwenden, dann laden Sie das entsprechende jar aus dem maven repository online herunter.
2. Erstellen Sie ein FileUploadForm-Modell
FileUploadForm.java
%Vor%3. Fügen Sie den Resolver zur MVC-Konfigurationsdatei hinzu
%Vor% 4. Schreiben Sie FileUploadController
FileUploadController.java
%Vor% 5. Schreibe jsp Ansichten
file_upload_form.jsp
%Vor%Referenz: Ссылка
Anscheinend ist Ihr Inhaltstyp application / octet-stream. Bitte fügen Sie den folgenden Header in Ihre Anfrage ein und versuchen Sie
%Vor%Sie verwenden InputStream # verfügbar . Wie die Dokumentation sagt, ist dies die Anzahl der Bytes , die aus dem Stream gelesen werden können, ohne zu blockieren . Wie viele Bytes aus dem TCP-Eingabestream verfügbar sind, hängt von der Größe der Pakete und davon ab, wie Ihre Anfrage unter ihnen aufgeteilt wird (und viel mehr anderen Faktoren).
Wenn Sie den Stream immer vollständig lesen möchten, vergessen Sie die available()
-Methode, lesen Sie sie einfach bis zum Ende des Streams und Sie sollten in Ordnung sein.
Ich habe das schon mal unter zwei Bedingungen erlebt. Es war einmal, als ich knapp auf Festplattenspeicher lief und das andere war, als ich ein bisschen Belastungstest machte.
Wenn Sie sich die Seite Wie es funktioniert ansehen, können Sie das Tool erstellen Objekte auf die Festplatte ablegen oder im Speicher behalten. In einem Fall füllte ich das Laufwerk während des Tests und das andere behielt Elemente im Speicher, aber die Last blies mein Speicherlimit.
Wie haben Sie es eingerichtet? Wie groß ist das Bild, das Sie zum Testen verwenden? Wie oft laden Sie es während Ihrer Tests hoch? Mit dieser Information sollte ich ein bisschen mehr helfen können.
Vielleicht ist die Reihenfolge der Elementliste nicht festgelegt (zeitabhängig?). Dein Code
%Vor%beendet die Schleife, anstatt die nächsten Teile auszuprobieren. In den Kommentaren, die Sie angeben, durchlaufen wir die Dateien, bis wir einen analysieren können, der
lesen sollte %Vor%dann.
Tags und Links java spring-mvc servlets