MalformedInputException

Status
Nicht offen für weitere Antworten.

Cannelloni

Mitglied
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:
Code:
				[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

Mitglied
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...
 

Cannelloni

Mitglied
Code:
URL url = new URL(urlstr);
stdin = new BufferedReader(new InputStreamReader(url.openStream()));
und dann lese ich zeilenweise mit
Code:
inData = stdin.readLine();
bis zu einem bestimmten Textvorkommen das ich mit
Code:
(inData.indexOf(startcp) != -1)
suche und ab da geb ich das ganze dann auf meiner Seite aus...
 

Bleiglanz

Gesperrter Benutzer
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

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

Cannelloni

Mitglied
Wie funktioniert das denn mit der HttpURLConnection?
folgendes hab ich versucht, hab als Ausgabe immer "null" erhalten...
Code:
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

Mitglied
Also das mit dem getContentEncoding hab ich immer noch nicht hingekriegt, aber ich hab einfach mal
Code:
new InputStreamReader(url.openStream(),"ISO-8859-1");
das hier eingegeben, und seit dem geht's :!:
Vielen Dank wieder mal :D
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

Gesperrter Benutzer
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

Code:
new InputStreamReader(url.openStream(),"ISO-8859-1"));
einfach mal mit verschiedenen Encodings probieren, vielleicht mal UTF-8 nehmen :)
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben