Hallo,
ich bin so langsam echt am Verzweifeln, dabei ist das was ich vorhabe ja eigentlich recht simpel, dachte ich zumindest......
Ich will eigentlich Dateien mit gzip komprimieren und zwischen verschiedenen Servlets verschicken.
Dummerweise finde ich im Netz und auf diversen Seiten nur wie ich - auf dem gleichen Host - gzip-Dateien lesen und schreiben kann, aber nicht wie ich die im Netzwerk vom einen Servlet zum anderen übertragen kann...
Ich hatte mir das einfach gedacht:
Im Sender-Servlet:
- die Datei einlesen
- beim Lesen des Inputs-Streams gleichzeitig auf einen ByteArrayOutputStream schreiben
- und mit diesem ByteArrayOutputStream einen gzipOutputStream erzeugen
Soweit so gut, nur wie hänge ich diesen GZIPOutputStream jetzt an die url an mit der ich mein Empfängerservlet aufrufe?
Mach ich folgendes:
Nur jetzt hänge ich natürlich an
Was soll ich denn da übergeben?
bringt mir ja nichts, und in der API-Doku sehe ich da auch nichts entsprechendes?
Kann mir da bitte jemand auf die Sprünge helfen?
ich bin so langsam echt am Verzweifeln, dabei ist das was ich vorhabe ja eigentlich recht simpel, dachte ich zumindest......
Ich will eigentlich Dateien mit gzip komprimieren und zwischen verschiedenen Servlets verschicken.
Dummerweise finde ich im Netz und auf diversen Seiten nur wie ich - auf dem gleichen Host - gzip-Dateien lesen und schreiben kann, aber nicht wie ich die im Netzwerk vom einen Servlet zum anderen übertragen kann...
Ich hatte mir das einfach gedacht:
Im Sender-Servlet:
- die Datei einlesen
- beim Lesen des Inputs-Streams gleichzeitig auf einen ByteArrayOutputStream schreiben
- und mit diesem ByteArrayOutputStream einen gzipOutputStream erzeugen
Code:
String fileName = "/home/jollyroger/workspace/ft/data/output/customer_1/eai/eai_import.data1";
BufferedInputStream bis = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[ 0xFFFF];
try {
bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
for(int len; (len = bis.read(buffer)) != -1; ) {
baos.write(len);
}
GZIPOutputStream gzos = new GZIPOutputStream(baos);
Soweit so gut, nur wie hänge ich diesen GZIPOutputStream jetzt an die url an mit der ich mein Empfängerservlet aufrufe?
Mach ich folgendes:
Code:
URL url = new URL("http://localhost:8180/ft/sfr/testreceiver");
// open connection
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setDoOutput(true);
httpConn.setDoInput(true);
httpConn.setRequestMethod("POST");
OutputStreamWriter oStreamWriter;
oStreamWriter = new OutputStreamWriter(httpConn.getOutputStream());
oStreamWriter.write(?????????, 0, ????????.length());
oStreamWriter.flush();
Nur jetzt hänge ich natürlich an
Code:
oStreamWriter.write(?????????, 0, ????????.length());
Was soll ich denn da übergeben?
Code:
GZIPOutputStream.toString()
Kann mir da bitte jemand auf die Sprünge helfen?