# Inputstream Probleme



## Robson (30. Sep 2004)

Hallo,
ich hab auf einen server mein Servlet gebastelt. Wenn ich nun nen POST Request vom Server aus auf das Servlet was auch auf dem Server liegt sende, funktioniert alles.

Wenn ich daten von einem anderen Rechner Sende ist es so als ob keine Daten ankommen. So als ob der Payload leer wäre.

Dan bekomme ich meldungen wie diese hier



> <HTML><TITLE> SAP J2EE Engine/6.20</TITLE><BODY><H1>Internal Server Error 500!</H1>
> 
> 
> 
> ...



Aber ich hatte auch schon andere Meldungen wenn ich den Inputstream anders eingelesen habe oder ich hab ne NullPointer Exception bekommen wenn ich auf Daten aus dem String zugreifen wollte.

Also wie kann es sein das er die Daten nicht "erkennt?" wenn sie von einem anderem Rechner gesendet werden als der Server selbst wo das Srvlet drauf läuft ?


----------



## Bleiglanz (4. Okt 2004)

HÄ, kann so eigentlich nicht vorkommen?

ist der payload möglicherweise sehr gross? die Verbindung sehr langsam?

Client lost or synchronization error! No data read for the timeout of 10000milliseconds.

machst du was ungewöhnliches in deinem Servlet??


----------



## Robson (4. Okt 2004)

Die Payload ist sehr klein .. und die Verbindung auch net Langsam.

Ich lese den InputStream so ein 


```
String inputString=""; 
		BufferedReader bufString = new BufferedReader(new InputStreamReader(request.getInputStream())); 
		for (String buf;(buf = bufString.readLine()) != null;inputString+=buf + "\n");
```

wenn du ne bessere Art weisst wie ich ihn einlesen sollte immer her damit. (bzw.andere Variaten die ich ausprobieren könnte)
Ich weiss Langsam nicht mehr was ich noch tun soll.

habs auch schon so gemacht:


```
ServletInputStream inputstream = null;
		inputstream = request.getInputStream();
		byte[] buf = new byte[1024]; 
		int len = inputstream.read(buf,0,1024);
		inputString = new String(buf, 0, len);
	inputstream.close();
```

Da kommt erst Später ne Meldung String Index out Of BOund ... aber im prinzip ist es der gleiche Fehler, er hat halt keine Daten bekommen.

Bin für jeden noch so kleinen Hinweis oder Gedankenanstoss überaus Dankbar !


----------



## meez (4. Okt 2004)

Hast du ne Firewall, welche nur in einer Richtung sperrt?
Sieht mir irgendwie nach sowas aus...


----------



## Robson (4. Okt 2004)

Ne hab ich auch schon gedacht. Aber hab alles aus.
Es Passiert auch gelegentlich wenn ich Nachrichten vom Server Sende das der gleiche fehler kommt. Aber meistens geht es.
Also irgendwie ist da was Schief !


----------



## Bleiglanz (4. Okt 2004)

mir fällt auch nix ein 

>>request.getInputStream()

du darfst weder vorher noch nachher request.getParameter(x) verwenden!

oder/und

CharacterEncoding einstellen beim auslesen!

oder/und

woher kommt der POST? Ist der manuell zusammengestrickt mit den java.net.* Klassen?


----------



## Robson (4. Okt 2004)

>> du darfst weder vorher noch nachher request.getParameter(x) verwenden! 

das tu ich aber um Übergabeparameter aus der URL zu lesen. //Edit: Hab sie Entfernet, bringt aber leider nichts 

>> CharacterEncoding einstellen beim auslesen! 

wie geht den das?

>> woher kommt der POST? Ist der manuell zusammengestrickt mit den java.net.* Klassen?

der POST wird mit dem Tool WebFetch erstellt, dass ein Tool welches in der Lage ist POST Requests zu erzeugen.


----------



## meez (4. Okt 2004)

Ja..Schau eventuell den Client mal genauer an...


----------



## Bleiglanz (5. Okt 2004)

>>Hab sie Entfernet, bringt aber leider nicht

du kannst nicht gleichzeitig Übergabeparameter auslesen UND dann den ganzen Inputstream nochmal [der wurde ja schon gelesen]

schau mal mit etherreal an, ob bei den Remote-Clients die payload dabei ist


----------



## Robson (5. Okt 2004)

// schau mal mit etherreal an, ob bei den Remote-Clients die payload dabei ist

ähm..?!.. wer ist gestorben ? ???:L


----------



## meez (5. Okt 2004)

Ethereal ist ein Tool, mit welchem man den Verkehr, sowie die Protokolle eines Netztes überwachen kann...


----------



## Robson (5. Okt 2004)

Hab es getestet ... und es kommt alles an ... also muss der Fehler irgendwo im zusammenhang mit dem Servlet und der SAP J2EE Engine hängen richtig ? bzw. nur in der SAP J2EE Engine


----------

