RMI: Clienthandles werden nicht übertragen

retn

Grünschnabel
hoi all,

wollte mich ein bisschen in RMI einarbeiten. Hab dazu ein RMI Chat gefunden und anstatt ein Client in einem JFrame, habe ich ein kleines Java Applet gebaut, nichts grossartiges. Also lokal auf meinem xampp Server klappts auch ohne Probleme.

Da bekomme ich auch ein anständiges Handle des Client zurück :
Code:
Proxy[ClientHandle,RemoteObjectInvocationHandler[UnicastRef[liveRef: [endpoint:[192.168.0.61:1530](remote),objID:[-2a55aadc:117c225de:-7ffe, -3225426787350309673]]]]]
und ergo kann ich auf alle Clients Callbacks schicken

Exportier ich das ganze auf meine linux fc5 Kiste, klappt die Übergabe von den Clienthandles zum Server nicht.
Das Applet lädt ewig und es kommt nichts. Die Exception Routine stell ich im Applet über paint dar... aber da nichts lädt. nun ja. Wie alles in ca. programmiert ist, sieht man im oben genannten Link.
Brech ich den Appletladevorgang ab .. kommt natürlich nen io.EOF Exception...

Auf meinem Server sieht das alles in etwa so aus:

hab alle Klassen kompeliert,

einmal unter dem jdk/bin Order.
/usr/java/jdk_bla/bin/ <package>

und fürs Applet in einem fürs Web freigegeben Ordner.
/var/www/html/chat/ <package>

Benutze die Standard Policy mit permission java.security.AllPermission; , nichts weiter.

Starte den Server über
Code:
./java  -Djava.security.policy=security.policy -Djava.rmi.server.codebase=file:/usr/java/jdk1.6.0_10/bin/ examples.hello.ChatServer

einwandfrei ..

Jetzt nen bissel code:

Applet:
Code:
public ClientHandle handle;

public void init () {

   //rmi lookup
   ChatServer server = (ChatServer)Naming.lookup("rmi://<server ip>:<port>/chat-server");

   //handle wird erstellt
   handle = new ClientHandleImpl(this);

   //handle und nick wird an den server übermittelt
   session = server.createSession(nickname, handle);
}
Server:
Code:
private static Hashtable<Object,Object> sessions = new Hashtable<Object,Object>();

public Session createSession(String nickname, ClientHandle handle) throws RemoteException {
   
    Session s = new SessionImpl(this, nickname, handle);
    sessions.put(nickname,s);
    return s;  
}

und hier hackt es, ob es nun am Server oder am Applet liegt, keine Ahnung. hab on mass ausprobiert .. aber klick hat es leider net gemacht :(

mfg retn
 
Zuletzt bearbeitet:
Zurück