javaprogger1987
Erfahrenes Mitglied
Hallo!
Also ich weiß das es zu dem Thema schon massig Threads gibt, allerdings finde ich in keinem die Lösung für mein Problem.
Ich verwende für einen Upload (zu einem Host der nicht mir gehört - d.h. ich kann es nicht per Servlet lösen) die Klasse MultiPartFormOutputStream bzw. eine etwas von mir abgeänderte Version (um den Fortschritt zu verfolgen) (http://forum.java.sun.com/thread.jspa?forumID=31&threadID=451245)
Die entsprechende Stelle:
Das dumme ist nun nur, dass er einfach diese Schleife innerhalb von wenigen Sekunden durchläuft und auch den Outputstream schon schließt(!!) aber die Datei ist noch nicht ganz am Server angekommen. Das sehe ich daran, dass die Lampe an meinem Switch noch ne ganze Zeit weiter blinkt (und daran das der Upload nicht nach ~2 Sekunden fertig sein kann).
Er blockiert erst an folgender Stelle bis alles hochgeladen wurde:
Nun ist meine Frage - sollte out.flush(); nicht dafür sorgen das die Daten erst gesendet werden? Gibt es noch einen internen Cache den ich irgendwie abschalten kann? Oder eine andere Art wie ich das monitoren kann?
Frohe Weihnachten
Tobi
Also ich weiß das es zu dem Thema schon massig Threads gibt, allerdings finde ich in keinem die Lösung für mein Problem.
Ich verwende für einen Upload (zu einem Host der nicht mir gehört - d.h. ich kann es nicht per Servlet lösen) die Klasse MultiPartFormOutputStream bzw. eine etwas von mir abgeänderte Version (um den Fortschritt zu verfolgen) (http://forum.java.sun.com/thread.jspa?forumID=31&threadID=451245)
Die entsprechende Stelle:
Java:
while((r = is.read(data, 0, data.length)) != -1) {
done = done + r;
jxupper.setDone( (int)(((double)done/(double)size)*100.0) );
System.out.println((((double)done/(double)size)*100.0));
out.write(data, 0, r);
out.flush();
}
Das dumme ist nun nur, dass er einfach diese Schleife innerhalb von wenigen Sekunden durchläuft und auch den Outputstream schon schließt(!!) aber die Datei ist noch nicht ganz am Server angekommen. Das sehe ich daran, dass die Lampe an meinem Switch noch ne ganze Zeit weiter blinkt (und daran das der Upload nicht nach ~2 Sekunden fertig sein kann).
Er blockiert erst an folgender Stelle bis alles hochgeladen wurde:
Java:
outputStream.close();
//Hier blockiert er bis Upload fertig
BufferedReader in = new BufferedReader(
new InputStreamReader(urlConn.getInputStream()));
Nun ist meine Frage - sollte out.flush(); nicht dafür sorgen das die Daten erst gesendet werden? Gibt es noch einen internen Cache den ich irgendwie abschalten kann? Oder eine andere Art wie ich das monitoren kann?
Frohe Weihnachten
Tobi