Avatar billede ibleif Nybegynder
15. juni 2004 - 16:38 Der er 6 kommentarer og
1 løsning

RMI - frem og tilbage! (Registry-problem)

Hej Alle!

Jeg har et system (2 applikationer) som når de kører på 3 forskellige maskiner virker fint. Nu vil jeg så gerne have dem til at køre samme maskine (For at kunne vise det som demo), men det giver store problemer.

Systemet virker ved at jeg starter applikation #1 som starter RMI på port 1099 og venter....

applikation #2 startes så ... og vil først oprette en RMI på port 1098 (således at den kan være server også) og vil så connecte til applikation #1 og køre en metode der gør at #1 forbinder til #2 også...

Det betyder at man kan snakke begge veje via RMI.
Det virker fint over netværk, men når jeg vil køre det på samme maskine, så får jeg noget RMI-fejl:

java.rmi.NotBoundException: MASKINENS_NAVN
java.rmi.NotBoundException: MASKINENS_NAVN
    at sun.rmi.registry.RegistryImpl.lookupRegistryImpl.java:106)

Mit program kører sådan set stadig, og der er forbindelse fra #2 til #1 ... men, ikke omvendt!

Nogen gode foreslag?!

// Ibleif
Avatar billede ibleif Nybegynder
15. juni 2004 - 16:39 #1
... De kører selvfølgelig kun på 2 forskellige maskiner! :D
Avatar billede arne_v Ekspert
15. juni 2004 - 16:43 #2
Jeg har engang fået at vide at der er et problem med to rmi registrys på
samme maskine.

Den der starter sidst kan vel bruge den rmi registry den første har startet.
Og ved lidt fiks catch af exception må det også kunne gøres symmetrisk, således
at det er ligegyldigt hvilke af de 2 programmer der startes først.

Muligvis kunne du også nøjes med callback.
Avatar billede ibleif Nybegynder
15. juni 2004 - 16:51 #3
Programmerne er færdigudviklet, og har virkelig ikke meget lyst til at skulle lave koden radikalt om bare for at få dem til at virke på 1 computer. (De er jo skrevet til at køre på 2 forskellige, og der virker de fint.)

- Hvordan skal de dele registry?
- Hvad er callback ?

Håber du kan svare på de 2 spørgsmål!

// Ibleif
Avatar billede arne_v Ekspert
15. juni 2004 - 16:57 #4
De kan sagtens dele registry, når de kører på samme maskine. Hvor enten
rmiregistry startes separat. Eller kun den ene starter rmiregistry, hvis de altid
startes i samme rækkefølge. Eller der laves noget try catch logik så de finder
ud af om de skal starte deres egen eller bruge den andens rmiregistry, således
at d ekan startes i vilkårlig rækkefølge. Det er altid godt at gøre rmistristry
placering konfigurerbart.

callback er når client kalder en server metode med et objekt som server
så kalder metoder på (pointen er at så bliver de udført i client). Jeg har
skrevet lidt om det i min RMI artikel (den videregående).
Avatar billede arne_v Ekspert
15. juni 2004 - 16:58 #5
Avatar billede ibleif Nybegynder
15. juni 2004 - 17:04 #6
Jeg fik det til at virke med at dele registry! - Tak for hjælpen!

Jeg vil læse mere om callback! Er altid rart at lære nye teknikker!

Hvis du vil have point, så skal du lige lave et svar!
Sjovt nok så vidste jeg inden at jeg oprettede dette spørgsmål, at det var dig som ville komme med en brugbar løsning! :-)

// Ibleif
Avatar billede arne_v Ekspert
15. juni 2004 - 17:06 #7
svar
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