Seite 1 von 2

P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 01:47
von kde
Hi,
ich bekomme bei Voyager die Mobility-Funktionalität nicht hin.
Es gibt immer Exceptions beim Aufruf von moveTo():
java.lang.ClassCastException: [B cannot be cast to com.recursionsw.ve.orb.Guid
und dann (vermutlich als Konsequenz) ObjectNotFoundExceptions.

Die Probleme habe ich sowohl in meinem eigenen Code, als auch in den Voyager-Beispielen in examples.mobility.Mobility1 und Mobility2 (in RSI/VoyagerDeveloperCommunity/examples/java/se-cdc/java/examples).
Ohne den Quellcode von Voyager lässt sich der Fehler leider kaum finden.

Hat das irgendjemand schon ausprobiert?

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 02:49
von baerchen
Gleiches Problem mit:
Windows XP und Ubuntu
Voyager 8.0.0.0-community
Java 1.6.0_15

Ich vermute mal die neue, auch nicht vollständig dokumentierte Version von Voyager.

Gibt es im Notfall vielleicht noch eine ältere Version, die noch wie gewollt funktioniert?

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 11:20
von Jan R.
Hey, das Problem habe ich genau so auch... Bei mir mit XP, der vorgegebenen Voyager-Version und Java 1.6.0_16.

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 14:53
von dEeP-fRiEd
Wir haben ein anderes Problem:

Die Implementierung in der ve-core.jar Datei weicht von der Dokumentation ab. So gibt es in der Factory beispielsweise KEINE statische "create" Methode. Stattdessen muss der Constructor mit einem "Invoker" Objekt aufgerufen werden. Ebenso hat der Namespace keine statische Lookup Methode :shock:

Wenn wir dann einfach mal auf der Console einen Voyager Server mit "voyager.bat //localhost:1337" starten und anschließend aus dem Java Programm Projekte wie folgt darauf ablegen wollen, SCHEINT alles zu funktionieren:

Code: Alles auswählen

Voyager.startup();

HelloWorld hw = (HelloWorld) Proxy.of(new HelloGuy());
IMobility im = Mobility.of(hw);
im.moveTo("//localhost:1337");

System.out.println("The other says: "+hw.sayHello("Jack"));

Allerdings wird die "sayHello" Methode NICHT auf dem vorher gestarteten Server ausgeführt. (Das sehe ich daran, dass der "HelloGuy" ein System.out ausführt, dass auf der falschen Konsole auftaucht und daran, dass das Programm auch dann Fehlerfrei läuft, wenn der Server vorher NICHT gestartet wurde!)


Das gleiche Phänomen tritt auch auf, wenn man die Factory benutzt:

Code: Alles auswählen

Voyager.startup();
		
Factory factory = new Factory(new Invoker());
HelloWorld hw = (HelloWorld) factory.create(HelloGuy.class.getName(),"jake");
IMobility im = Mobility.of(hw);
im.moveTo("//localhost:1337");

System.out.println("The other says: "+hw.sayHello("Jack"));

Das kann ja nicht der Sinn der Sache sein!? (Also dass die "mobilen" Objekte, dann doch alle im Hauptprozess laufen...)

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 14:58
von kde
Die Factory und den Namespace kann man über Voyager.acquireClientContext().getFactory bzw. getNamespace() erlangen.
Das steht allerdings auch in der aktualisierten Doku im Installationsordner.

Code: Alles auswählen

im.moveTo("//localhost:1337");
ist vermutlich auch nur ein veralteter Methodenaufruf.
Hier wird die moveTo(Object o)-Methode aufgerufen, wobei laut Doku das Argument ein Proxy sein soll.
Ein String ist natürlich kein Proxy, daher wird das gar nicht erst verschoben.

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 16:16
von dEeP-fRiEd
kde hat geschrieben:Die Factory und den Namespace kann man über Voyager.acquireClientContext().getFactory bzw. getNamespace() erlangen.
Das steht allerdings auch in der aktualisierten Doku im Installationsordner.

Code: Alles auswählen

im.moveTo("//localhost:1337");
ist vermutlich auch nur ein veralteter Methodenaufruf.
Hier wird die moveTo(Object o)-Methode aufgerufen, wobei laut Doku das Argument ein Proxy sein soll.
Ein String ist natürlich kein Proxy, daher wird das gar nicht erst verschoben.

Vielen Dank, jetzt kriegen wir auch die ClassCastExcepion :idea: :roll:

BTW: Wie hätte man denn erkennen können. dass "VoyagerCoreDeveloperGuide.pdf" die "aktualisierte" Doku von "VECoreDeveloperGuide.pdf" ist...

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 16:28
von baerchen
dEeP-fRiEd hat geschrieben:BTW: Wie hätte man denn erkennen können. dass "VoyagerCoreDeveloperGuide.pdf" die "aktualisierte" Doku von "VECoreDeveloperGuide.pdf" ist...
Intuition :D

Ich denke dass diese ganzen Probleme damit zu tun haben, dass in unserer Version vieles geändert wurde und sowohl in der Doku als auch im Code schlichtweg ein paar passende Veränderungen vergessen wurden

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 22:17
von baerchen
Ich habe mit einer alten Voyager 6.0.1-Version aus dem Netz mal immerhin Objekte vom Erzeuger zu einem anderen Node verschoben. Beim Versuch, das Objekt zurückzuverschieben gabs eine NullPointerException.


An die Veranstalter: Es ist unter den derzeitigen Umständen nicht möglich, die Aufgabe sinnvoll zu bearbeiten. Deswegen wären wir froh wenn wir entweder eine funktionierende Voyager-Version bekommen oder die Aufgabenstellung so angepasst wird, dass sie auch ohne Verschieben von Objekten lösbar ist

Re: P6: Voyager Mobility Exceptions

Verfasst: 1. Feb 2010 22:44
von Tigger
baerchen hat geschrieben:Ich habe mit einer alten Voyager 6.0.1-Version aus dem Netz mal immerhin Objekte vom Erzeuger zu einem anderen Node verschoben. Beim Versuch, das Objekt zurückzuverschieben gabs eine NullPointerException.

Da bist du schonmal weiter als wir ;)
Kannst du bitte mal linken, wo man die 6er version laden kann? THX

Re: P6: Voyager Mobility Exceptions

Verfasst: 2. Feb 2010 02:23
von RomanMertyn
Ich habe nach der Sprechstunde heute noch mal mit dem Erwin gesprochen. Die Veranstalter sind also informiert.
Die 6-er Version von Voyager würde mich auch interessieren. Bitte schicke mir eine EMail mit dem link. Ich werde es, auf meinem oder auf Fachbereichseigenem Server zu Verfügung stellen. Oder es gibt ein offizieller Statement hier und in der Übung am Donnerstag.

Re: P6: Voyager Mobility Exceptions

Verfasst: 2. Feb 2010 03:02
von RomanMertyn
baerchen hat geschrieben:Ich habe mit einer alten Voyager 6.0.1-Version aus dem Netz mal immerhin Objekte vom Erzeuger zu einem anderen Node verschoben. Beim Versuch, das Objekt zurückzuverschieben gabs eine NullPointerException.


An die Veranstalter: Es ist unter den derzeitigen Umständen nicht möglich, die Aufgabe sinnvoll zu bearbeiten. Deswegen wären wir froh wenn wir entweder eine funktionierende Voyager-Version bekommen oder die Aufgabenstellung so angepasst wird, dass sie auch ohne Verschieben von Objekten lösbar ist
Ich habe inzwischen die 6.0.1 Version gefunden. ABER es verlangt nach höchstens JAVA 1.5. Welche Java Version benutzt du?

Re: P6: Voyager Mobility Exceptions

Verfasst: 2. Feb 2010 03:09
von baerchen
Ich habe es ursprünglich von:

http://download.cnet.com/Voyager-Edge-C ... 15426.html

Das ist die Windows-Version, Linux-Version habe ich keine gefunden

Die Version läuft aber aus Lizenzgründen nicht mehr wenn das Systemdatum neuer als 2007 ist. Man muss also theoretisch jedes mal die systemuhr umstellen um mit der Software zu arbeiten.

Bei mir habe ich die Lizenzüberprüfung deswegen gleich ganz entfernt, weiß aber nicht ob ich "gecrackte" kommerzielle Software hier im Forum posten sollte...

Re: P6: Voyager Mobility Exceptions

Verfasst: 2. Feb 2010 03:11
von RomanMertyn
baerchen hat geschrieben:
Die Version läuft aber aus Lizenzgründen nicht mehr wenn das Systemdatum neuer als 2007 ist. Man muss also theoretisch jedes mal die systemuhr umstellen um mit der Software zu arbeiten.
Nice!!!

Nö auf keinem Fall!!!

Re: P6: Voyager Mobility Exceptions

Verfasst: 2. Feb 2010 04:23
von kde
Ich habe die Version 6.0.1 eben ausprobiert.
Mobility funktioniert bei mir, wenn man sich an den alten Stil hält [also z.b. mobility.moveTo("//localhost:8000")].
Es reicht die beiliegende ve-core.jar in Eclipse zu linken.

Dass die Version abgelaufen ist, sollte keinen Informatiker an der Benutzung hindern können ;-)

Re: P6: Voyager Mobility Exceptions

Verfasst: 2. Feb 2010 11:50
von Leaf
Habe das selbe Problem mit der ClassCastException.

Ich finde das Ganze sehr ärgerlich, da ich vorhatte mit der Aufgabe frühstmöglich fertig zu werden (am Semesterende stehen wie üblich auch noch viele andere Dinge an).

Wäre es möglich, dass es zu der Problematik noch heute ein offizielles Statement gibt?