/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
RMI design
Fra : Kim Søvsø Pedersen


Dato : 25-11-03 15:48

Halløj

Jeg har et RMI-relateret spørgsmål.

Kort fortalt:
Klienten henter en LinkedList bestående af MenuEntry-objekter, der er
kreeret på serveren.

På klienten vil jeg så gerne gennemløbe denne LinkedList og bruge nogle af
de metoder, der ligger på et MenuEntry objekt, men i og med at klassen
MenuEntry kun ligger på serveren kan jeg vel ikke angive den som type for de
objekter, der findes i min LinkedList? Eller SKAL jeg have en kopi af
MenuEntry-klassen på klienten også? Eller hvad? :)

(snip)
AdminInterface a = (AdminInterface)
Naming.lookup("rmi://localhost/AdminService");
LinkedList listOfMenuEntries = a.tempListME();

int i = 0;
while (listOfMenuEntries.size() > i) {
MenuEntry currentEntry = (MenuEntry) listOfMenuEntries.get(i);
System.out.println(currentEntry.getName());
i++;
}
(snip)

Mvh Kim



 
 
Anders K. Olsen (25-11-2003)
Kommentar
Fra : Anders K. Olsen


Dato : 25-11-03 17:22

"Kim Søvsø Pedersen" <kimsp80@FJERNDETTEyahoo.dk> wrote in message
news:bpvq0p$hvq$1@sunsite.dk...
> Halløj
>
> Jeg har et RMI-relateret spørgsmål.
>
> Kort fortalt:
> Klienten henter en LinkedList bestående af MenuEntry-objekter, der er
> kreeret på serveren.
>
> På klienten vil jeg så gerne gennemløbe denne LinkedList og bruge nogle af
> de metoder, der ligger på et MenuEntry objekt, men i og med at klassen
> MenuEntry kun ligger på serveren kan jeg vel ikke angive den som type for
de
> objekter, der findes i min LinkedList? Eller SKAL jeg have en kopi af
> MenuEntry-klassen på klienten også? Eller hvad? :)

Man kan overføre to typer af objekter via RMI:

- Serialiserbare objekter
- Remote references

Serialiserbare objekter "kopieres" når de overføres, dvs. man på klientsiden
står med en kopi af objektet på serversiden, og de to objekter lever
derefter deres helt eget liv. Serialiserbare objekter skal implementere
java.io.Serializable eller java.io.Externalizable.

Remote references overføres ikke til klienten. Klienten får derimod en
reference til et objekt på serveren, og alle metodekald på kilientens objekt
går via RMI til objektet på serveren. Der er altså kun et objekt, men
potentielt mange referencer til dette objekt. Remote references skal
implementere et interface som extender java.rmi.Remote, og alle interfacets
metoder skal specificeres til at kaste java.rmi.RemoteException.

Det lyder som om du ønsker at MenuEntry skal være en remote reference, så
objektet stadigvæk ligger på serveren, men klienten kan også få adgang til
det.

Der findes sandsynligvis en god forklaring et sted på Java tutorial, men jeg
syntes ikke rigtig jeg kan komme længere end til http://java.sun.com/ i
øjeblikket.

/Anders




Kim Søvsø Pedersen (26-11-2003)
Kommentar
Fra : Kim Søvsø Pedersen


Dato : 26-11-03 09:31

"Anders K. Olsen" <akol_dk@hotmail.com> skrev i en meddelelse
news:3fc381c5$0$147$edfadb0f@dtext02.news.tele.dk...
>
> Der findes sandsynligvis en god forklaring et sted på Java tutorial, men
jeg
> syntes ikke rigtig jeg kan komme længere end til http://java.sun.com/ i
> øjeblikket.
>
> /Anders

Tak, det vil jeg prøve at eksperimentere med...

Kim



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408192
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste