Avatar billede badal Nybegynder
21. november 2003 - 10:35 Der er 10 kommentarer og
1 løsning

Spørgsmål omkring RMI

Kan det passe at man skal altid starte rmi server programmet før klient programmet? Jeg har nogle tilfælde hvor man kan komme ud for at klient programmet starter før server programmet og bliver ved med at forsøge at connecte til serveren. Og når jeg starter serveren så kan klient programmet stadig ikke connecte. Den kan sagtens connecte hvis klient programmet efter server programmet.
Avatar billede badal Nybegynder
21. november 2003 - 10:40 #1
Og et andet spørgsmål også. Jeg får følgende exception og stub filen ligger i den samme folder som alle klient filer. Jeg benytter packages. Kan det have noget med det at gøre??

java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
        java.lang.ClassNotFoundException: ServerImpl_Stub (no security manager: RMI class loader disabled)
Avatar billede arne_v Ekspert
21. november 2003 - 10:44 #2
Jeg har aldrig prøvet at starte client førend server. Lyder som
om noget bliver messet op af det første forsøg.
Avatar billede arne_v Ekspert
21. november 2003 - 10:46 #3
stub skal bare være i client classpath (og rmiregistry classpath) for
det simple tilfælde

Er stub og klient filer i samme package ?
Avatar billede badal Nybegynder
21. november 2003 - 10:53 #4
Ja stub og klient filer ligger i den samme package
Avatar billede arne_v Ekspert
21. november 2003 - 11:16 #5
Lad mig gætte: det virker hvis client og server er på samme system men fejler
hvis det er på forskellige systemer og du har ikke defineret nogen
security manager og policy fil ?
Avatar billede arne_v Ekspert
21. november 2003 - 11:18 #6
System.setSecurityManager(new RMISecurityManager());

i både client og server.

-Djava.security.policy=xyz.policy

og noget passende i xyz.policy
Avatar billede badal Nybegynder
21. november 2003 - 11:18 #7
Ja det er rigtigt. Det virker hvis det er på samme maskine. Men jeg ved ikke hvordan jeg skal definere security manager og policy fil ??
Avatar billede badal Nybegynder
21. november 2003 - 11:24 #8
Skal koden for security manageren placeret på et bestemt sted i koden? Kan jeg f.eks. placere den i en konstruktør? Her er det klient programmet.

public parseText() throws Exception
    {
        System.setSecurityManager(new RMISecurityManager());

        try
        {
            server = (RMIserver) Naming.lookup ("rmi://" + STRhost + "/Server");
        }
        catch(Exception ex)
        {
            System.out.println(ex);
        }
    }
Avatar billede arne_v Ekspert
21. november 2003 - 11:53 #9
Bare den udføres før Naming.lookup er det helt fint.
Avatar billede arne_v Ekspert
30. november 2003 - 22:53 #10
OK ?
Avatar billede badal Nybegynder
30. november 2003 - 23:10 #11
ja i det her tilfælde var det java.policy filen der skulle rettes til i
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester