Bevor jemand haareraufend auf Jini schimpft, sei er hier auf mögliche Stolperfallen hingewiesen:
Bei manchen Solaris-Konfigurationen scheinen Programme mit Swing-Komponenten nur lokal darstellbar zu sein. Das Display auf einem Remote-Rechner führt entweder zu einem core dump, oder es erscheint ein leerer Frame.
Auf Rechnern mit Windows-Betriebssystem ohne Netzanschluß startet der rmid oft nicht. Ursache ist möglicherweise ein fehlgeschlagener Name Lookup. Ein verläßlicher Workaround ist nicht bekannt. Es kann helfen, einen DFÜ-Adapter und TCP/IP zu installieren, dem DFÜ-Adapter eine feste IP-Adresse zuzuweisen und das Paar Rechnername/IP-Adresse in hosts beziehungsweise lmhosts einzutragen, DNS muß auf jeden Fall deaktiviert sein.
Jini verwendet eine eigene Multicast-Gruppe. Die übliche Switch-/Router- Konfiguration blockt aber Multicasts. Wird der LUS in einem anderen Netzsegment gestartet, sieht man ihn in der Regel nicht und kann ihn nicht einsetzen. Ein weiteres Problem ist oft mit der Verwendung von Policy-Files verbunden. Das Java-Sicherheitsmodell fordert die Zusicherung expliziter Zugriffsrechte. Beispiele dafür sind Verzeichnisse oder Ports. In der Testphase von Jini sollte man immer die mitgelieferte policy.all verwenden: Sie sichert maximale Zugriffsrechte zu. Für ernsthafte Anwendungen ist sie natürlich nicht geeignet. policy.all ist folgendermaßen aufgebaut:
grant { permission java.security.AllPermission; };
Die Server-Codebase-Falle: Immer wenn ein ClassDefNotFoundError oder eine ClassNotFoundException auftritt, sollte man sich ernsthaft mit der Codebase-Property auseinandersetzen. Ist diese falsch gesetzt, findet der Client die Server-Proxy-Klasse nicht (sie wird in der Regel von der dort angegebenen Position geladen). Die Client-JVM bekommt beim Proxy-Download vom Lookup-Server mitgeteilt, von wo sie die Klasse selbst herunterladen kann. Steht hier beispielsweise nur ein Rechnername ohne Domäne, wird ein Client in einer anderen Domäne die Server-Klassen nicht finden. Der Service muß also immer die (aus Sicht des Servicenutzers) korrekte Codebase angeben.
Dieser Text ist der Zeitschriften-Ausgabe 04/1999 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.