Avatar billede r9 Nybegynder
17. juli 2002 - 15:15 Der er 5 kommentarer og
1 løsning

RMI objekter ?

Hvordan sikrer jeg mig at jeg får fat i et kørende objekt over RMI?

På den ene maskine binder jeg objektet:
Naming.bind ("Time", new Time());

Og på den anden maskine får jeg en reference:
TimeInterface time = (TimeInterface)Naming.lookup("//" + "host" + "/Time");

Men når jeg på de forskellige klienter laver lookup, får de hver deres reference, og jeg har derved mange forskellige objekter.

Hvis jeg f.eks. starter Time klassen i en tråd, ønsker jeg at kunne kalde de metoder som hele tiden bliver opdateret af tråden.


Kan nogen hjælpe?
Avatar billede jword Nybegynder
17. juli 2002 - 23:10 #1
Har du prøvet at lave din Time class til en singleton?
Avatar billede r9 Nybegynder
17. juli 2002 - 23:14 #2
ja, og jeg synes desværre ikke det hjalp.
Avatar billede jword Nybegynder
17. juli 2002 - 23:19 #3
Men selvom de har forskellige referencer, på klientniveau, er det så ikke stadig samme object, på serveren?
Avatar billede r9 Nybegynder
17. juli 2002 - 23:22 #4
Det tyder det ikke på når jeg tester det.
Men jeg er ved at løse det.
Avatar billede magoo20000 Nybegynder
18. juli 2002 - 10:06 #5
Det lyder mystisk... Kan du ik poste lidt af din kode.. Evt., hvis du stadig har den, din Singleton-løsning (den burde jo sikre kun et instans)!?
Avatar billede r9 Nybegynder
18. juli 2002 - 16:36 #6
Jeg har løst det på en anden måde.

Jeg registerer mine RMI objekter i en mini-server som holder deres referencer. Klienterne spørger så denne server om referencerne på RMI objekterne.
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