nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

OutOfMemoryError: Java heap space bei HTTP - PutMethod

Von: Juri Ivanov (juri.ivanov@medizinische-genetik.de) [Profil]
Datum: 04.11.2009 15:21
Message-ID: <hcs2ku$n7i$1@svr7.m-online.net>
Newsgroup: de.comp.lang.java
Hallo!

Ich bekomme einen OutOfMemoryError Fehler, sobald ich versuche eine Datei, die
größer ist als ca. 3MB mit einer Put-Methode auf einen WebDav-Server
hochzuladen.

Beispielscode:

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PutMethod;

HttpClient client = new HttpClient();
Credentials creds = new UsernamePasswordCredentials("userId", "pw");
client.getState().setCredentials(AuthScope.ANY, creds);

PutMethod put = new PutMethod("http://IrgendeinServer/Basisordner/test.txt");
RequestEntity requestEntity = new InputStreamRequestEntity(new
FileInputStream("/path/to/file/test.txt"));
put.setRequestEntity(requestEntity);

client.executeMethod(put); //<-- da steigt er aus


Ich hatte ein ähnliches Problem bei HTTP Multipart Post. Da hat es geholfen
den Stream (ich glaube das war FileOutputStream), mit dem er den Inhalt der
Datei in die Anfrage schreibt, auf BufferedOutputStream umzustellen.

Hier kann ich den OutputStream leider nicht beeinflussen.

Die Größe des JavaHeaps zu erhöhen hat seltsamerweise auch nichts
gebracht.

Hier ist noch die Fehlermeldung:

Exception in thread "Thread-5" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
at java.lang.StringBuffer.append(Unknown Source)

Hätte jemand eine Idee, wie ich das Problem lösen könnte?

Gruß, Juri

[ Auf dieses Posting antworten ]

Antworten