opdateret 2. december 2001
Tilpasning af filen java.policy
På klientmaskinen ændres filen \jdk1.2.1\jre\lib\security\java.policy. Det er en almindelig tekstfil, som man kan rette med f.eks. WordPad. Følgende linier indlægges øverst i filen:
grant {
permission java.net.SocketPermission "*:1024-65535","connect,accept";
permission java.net.SocketPermission "*:80","connect";
};
Start af RMI Registry udenfor programmet
Følgende anvisninger er ikke dokumenteret i lærebog eller tutorial; men Thomas Turn (DM006) har fundet ud af det efter en række eksperimenter.
Start stifinderen og stil dig i den mappe, hvor dine programmer ligger. Herefter starter man rmiregistry ved f.eks. at indtaste følgende kommando i Programstartens Kør funktion: command
Nu startes et DOS vindue, og først kontrolleres, at man faktisk står i den ønskede mappe (directory). Hvis det er tilfældet, kan følgende kommandoer indtastes:
set classpath=.
rmiregistry 7913
Herefter startes Kawa udviklingsmiljøet, og følgende sætninger tilføjes til server applikationens main metode:
RMIServer theServer =
new RMIServer();String name =
"rmi://localhost:7913/RMIServer";Naming.rebind(name,theServer);
Metoderne i det distribuerede objekt er ikke thread-safe
Opmærksomheden henledes på, at metoderne i et distribueret RMI objekt ikke er thread-safe - d.v.s. at objektet skal designes, som om det var en monitor, hvor metoderne skal være synkroniseret. Denne viden stammer fra min kollega, Peter Kjærsgaard, som har forsket i, hvad der sker, når flere klienter samtidig aktiverer metoder i et distribueret objekt.
Swing komponenter og Security Manager
Anders Riis og jeg har udforsket et muligt problem omkring anvendelsen af visse Swing komponenter i relation til RMI's Security Manager. Problemet opstod i relation til metoden setText på komponenten JTextPane, hvor Security Manageren kastede en exception. I stedet for jTextPane blev AWT komponenten TextArea forsøgt anvendt, og problemet forsvandt.