Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[RMI] Probleme bei Zugriff von fremdem Rechner

0 views
Skip to first unread message

Hilmar Bunjes

unread,
Jan 20, 2003, 7:20:19 PM1/20/03
to
Hallo,
ich habe bei mir ein RMI Server testweise laufen. Der Zugriff auf die Server
Sachen klappen auch alle wunderbar, zumindest, wenn der RMI Client auf
demselben Rechner läuft. Wenn ich aber von einem anderen Rechner desselben
Netzwerkes die Methoden aufrufen möchte, geht das schief:

Ich bekomme dann eine Exception:
java.rmi.UnmarshalException: Error unmarshaling return header nested
exception is: java.io.EOFException

Ich habe keine Ahnung, wodran das liegen kann... So lange programmiere ich
noch nicht mit RMI :-(

Vielleicht hat jemand von euch einen Anhaltspunkt, was es sein kann. Wie
gesagt, der Zugriff vom gleichen Rechner ist völlig problemlos.

Danke,
Hilmar


Jochen Theodorou

unread,
Jan 20, 2003, 8:12:31 PM1/20/03
to
Hilmar Bunjes schrieb:

UnbmarshalledExcetpion bedeutet in der Regel, dass eine Klasse nicht
gefunden wurde. Denk daran die Codebase richtig zu setzen. Näheres
findest du in praktisch jedem Tutorial. Wenn es nciht daran liegt kannst
du uns ja wieder schreiben.

Gruss theo

Hilmar Bunjes

unread,
Jan 21, 2003, 6:37:12 AM1/21/03
to
> > Ich bekomme dann eine Exception:
> > java.rmi.UnmarshalException: Error unmarshaling return header nested
> > exception is: java.io.EOFException
> >
> > Ich habe keine Ahnung, wodran das liegen kann... So lange programmiere ich
> > noch nicht mit RMI :-(
> >
> > Vielleicht hat jemand von euch einen Anhaltspunkt, was es sein kann. Wie
> > gesagt, der Zugriff vom gleichen Rechner ist völlig problemlos.
>
> UnbmarshalledExcetpion bedeutet in der Regel, dass eine Klasse nicht
> gefunden wurde. Denk daran die Codebase richtig zu setzen. Näheres
> findest du in praktisch jedem Tutorial. Wenn es nciht daran liegt kannst
> du uns ja wieder schreiben.

Ich kann ja mal kurz schreiben, wie ich den Server und den Client starte:
Server:
java -cp mysql-connector-java-3.0.4-gamma-bin.jar:.
-Djava.rmi.server.codebase=file:///PfadZuMeinenDateien
-Djava.security.policy=PfadZumPolicyFile swp02.g1.rmi.PortalRMIServer &

Client:
java -Djava.security.policy=PfadZumPolicyFile
-Djava.rmi.server.codebase=file:///PfadZuMeinenDateien
swp02.g1.test.RMITest

Ich hatte beim Client erst den codebase nicht gesetzt, habe dies jetzt
aber nachgeholt, trotzdem keine Besserung :-(

Hilmar

Hilmar Bunjes

unread,
Jan 21, 2003, 7:51:48 AM1/21/03
to

Hier nochmal der komplette stackTrace bei dem Fehler, vielleicht hilft das
ja etwas mehr:


java.rmi.UnmarshalException: Error unmarshaling return header; nested

exception:
java.io.EOFException
java.io.EOFException
at java.io.DataInputStream.readByte(DataInputStream.java:224)
at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:186)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:122)
at
swp02.g1.rmi.PoertalRMIServerImplementation_Stub.createNewUser(Unknown
Source)
at swp02.g1.test.RMITest.main(RMITest.java:42)

Danke,
Hilmar

Jochen Theodorou

unread,
Jan 21, 2003, 12:46:36 PM1/21/03
to
Hilmar Bunjes schrieb:

>>>>Ich bekomme dann eine Exception:
>>>>java.rmi.UnmarshalException: Error unmarshaling return header nested
>>>>exception is: java.io.EOFException
>>>>
>>>>Ich habe keine Ahnung, wodran das liegen kann... So lange programmiere ich
>>>>noch nicht mit RMI :-(
>>>>
>>>>Vielleicht hat jemand von euch einen Anhaltspunkt, was es sein kann. Wie
>>>>gesagt, der Zugriff vom gleichen Rechner ist völlig problemlos.
[...]

Also beim Aufruf der Methode createNewUser tritt eine EOFException
auf.... das hat natürlich nix mit der Codebase zu tun... Sorry.
Es scheint als würde während der Übertragung diese plötzlich
abgebrochen. Läuft denn der Server danach noch? Wenn ja wird wohl
einfach so der Socket geschlossen... Kannst du nach diesem Fehler den
Client neu starten und der selbe Fehler tritt wieder auf? (Also ohne
Neustart des Servers.)
Was in der Regel hilft ist zu versuchen ein minimales Beispiel des Codes
zu schreiben, dass den Fehler erzeugt. Manchmal lösen sich dadurch die
Probleme einfach in Luft auf.
Gibst du eigentlich alle Exception auf dem Server auch aus?

Gruss theo

Hilmar Bunjes

unread,
Jan 22, 2003, 10:24:16 AM1/22/03
to
> Also beim Aufruf der Methode createNewUser tritt eine EOFException
> auf.... das hat natürlich nix mit der Codebase zu tun... Sorry.
> Es scheint als würde während der Übertragung diese plötzlich
> abgebrochen. Läuft denn der Server danach noch? Wenn ja wird wohl
> einfach so der Socket geschlossen... Kannst du nach diesem Fehler den
> Client neu starten und der selbe Fehler tritt wieder auf? (Also ohne
> Neustart des Servers.)
> Was in der Regel hilft ist zu versuchen ein minimales Beispiel des Codes
> zu schreiben, dass den Fehler erzeugt. Manchmal lösen sich dadurch die
> Probleme einfach in Luft auf.

Ich habe nochmal etwas mit rumgespielt. Ich habe eine Methode aufgerufen,
die nichts übergibt und nur einen int zurückbekommt. Selbst bei dieser
Methode wurde die genannte Exception geworfen.

Jetzt scheine ich aber das Problem gefunden zu haben, es liegt am
policyfile. Ich habe jetzt testweise alle Rechte gesetzt und dann getestet
und es läuft :-) Ich werde mich also damit jetzt noch ein wenig
auseinandersetzen und mal weitertesten.

Auf jeden Fall vielen Dank für deine Hilfe,
Hilmar


Jochen Theodorou

unread,
Jan 22, 2003, 1:47:16 PM1/22/03
to
Hilmar Bunjes schrieb:
[...]

> Ich habe nochmal etwas mit rumgespielt. Ich habe eine Methode aufgerufen,
> die nichts übergibt und nur einen int zurückbekommt. Selbst bei dieser
> Methode wurde die genannte Exception geworfen.
>
> Jetzt scheine ich aber das Problem gefunden zu haben, es liegt am
> policyfile. Ich habe jetzt testweise alle Rechte gesetzt und dann getestet
> und es läuft :-) Ich werde mich also damit jetzt noch ein wenig
> auseinandersetzen und mal weitertesten.

eigentlich sehen die Fehler durch das Policyfile anders aus, aber gut,
wenn es geholfen hat.

Gruss theo

0 new messages