# MalformedInputException



## Cannelloni (14. Sep 2005)

Hi!
Vielleicht kann mir jemand hier weiterhelfen...
Kurz zur Erklärung was ich vor hab: 
Eine JSP-Datei soll eine andere Seite im Netz aufrufen und bestimmte Inhalte daraus kopieren und darstellen.
Das funktioniert bei mir auch problemlos auf meiner Testumgebung:

Tomcat Version: Apache Tomcat/5.0.28 
JVM Version: 1.4.2_09-b05 
JVM Hersteller: Sun Microsystems Inc. 
OS Name: Windows XP 
OS Version: 5.1 
OS Architektur: x86 

Wenn ich das ganze auf den Webserver unsrer Abteilung schiebe:

Tomcat Version: Apache Tomcat/5.0.19
JVM Version: 1.4.2
JVM Hersteller: IBM Corporation 
OS Name: Linux
OS Version: 2.6.5-7.111.30-smp 
OS Architektur: x86 

dann erhalte ich immer eine sun.io.MalformedInputException.
Soweit ich das beurteilen kann, liest er folgende erste Zeile noch und bei der zweiten bricht er mit oben genannter Exception ab:

```
[url=""] Add subscription[/url]
				[url=""] Delete subscription[/url]
```
Ich verstehe nur nicht, was ihm an der Zeile Probleme macht, die erste geht ja auch noch?!...

Hat jemand eine Idee? Bin für jede Hilfe dankbar...

Viele Grüße
Cannelloni


----------



## Cannelloni (14. Sep 2005)

Sachen gibts...
Also ohne dass ich jetzt was geändert hab, kommt er jetzt bis zu folgender Zeile:


> /w_dir/webpages.nsf/ca129452f15a4143c125675200322705/5871fcf215df7af8c125702300242545/Body/0.4B0!OpenElement&FieldElemFormat=gif


Kann es sein, dass hier z.B. das $ Probleme macht? Wenn ja, wie kann ich das am geschicktesten umgehen? Was mich halt wundert, ist, dass es auf meinem lokalen Webserver problemlos funktioniert...


----------



## Bleiglanz (14. Sep 2005)

wie liest du denn die andere Datei ein?

über eine URLConnection?


----------



## Cannelloni (14. Sep 2005)

```
URL url = new URL(urlstr);
stdin = new BufferedReader(new InputStreamReader(url.openStream()));
```
und dann lese ich zeilenweise mit 

```
inData = stdin.readLine();
```
bis zu einem bestimmten Textvorkommen das ich mit 

```
(inData.indexOf(startcp) != -1)
```
 suche und ab da geb ich das ganze dann auf meiner Seite aus...


----------



## Bleiglanz (14. Sep 2005)

könnte an einem Encoding Problem liegen 

in welchem Encoding wird denn die Seite rausgeschrieben?

=> verwende eine HttpUrlConnection und evtl. getContentEncoding() um das rauszufinden und dann beim InputStreamReader mit angeben


```
new InputStreamReader(url.openStream(),"ISO-8859-1"));
```


----------



## Cannelloni (14. Sep 2005)

Wie funktioniert das denn mit der HttpURLConnection?
folgendes hab ich versucht, hab als Ausgabe immer "null" erhalten...

```
URL url = new URL(urlstr);
HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
System.out.println(connection.getContentEncoding());
```

Übrigens, mein Problem ist nicht eindeutig reproduzierbar, mal kommt er weiter in der Quell-Datei, mal weniger weit, aber nie bis zum Ende... Meistens kommt er sogar gar nicht so weit, dass er überhaupt etwas anzeigen würde...
Der Inhalt der Zeilen die ich in meinem ersten und zweiten Beitrag gepostet hab, is also scheinbar vollkommen unabhängig davon... Das macht das ganze für mich noch schwerer nachvollziehbar...   ???:L


----------



## Cannelloni (14. Sep 2005)

Also das mit dem getContentEncoding hab ich immer noch nicht hingekriegt, aber ich hab einfach mal 

```
new InputStreamReader(url.openStream(),"ISO-8859-1");
```
das hier eingegeben, und seit dem geht's  :!: 
Vielen Dank wieder mal   
Trotzdem würd ich das mit dem getContentEncoding noch ganz gern wissen, weil er stellt jetzt Umlaute falsch da, also denk ich einfach mal dass "ISO-8859-1" nicht richtig ist...


----------



## Bleiglanz (14. Sep 2005)

OK kann sein, dass kein Encoding-Header mitkommt...

öffne die Zielseite mal in einem Browser

schau was der Browser zum Encoding sagt (Ansicht > Kodieriung)

schau in den Quelltext, vielleicht steht da ein <meta tag drin


```
new InputStreamReader(url.openStream(),"ISO-8859-1"));
```
einfach mal mit verschiedenen Encodings probieren, vielleicht mal UTF-8 nehmen


----------

