Avatar billede thomaz Nybegynder
26. april 2001 - 03:09 Der er 1 kommentar og
1 løsning

RMI- retur af RMI objekt

Håber der er nogen der kan hjælpe :-)
Har lavet nedenstående klasse, som får adgang til en server via rmi.

import java.rmi.*;

// kunne evet også være en statisk ???

public class adgangTilRemoteObjekt
{

    Databasemetoder database = null;
    RMINameServer nameserver = null;       

    public adgangTilRemoteObjekt()
    {
   
        try
      {

        System.out.println(\"sætter fonbindelse op til NameServeren(Objekt)\");
        RMINameServer ns = (RMINameServer) Naming.lookup (\"rmi://192.168.179.213/NameServer\");
            database = (Databasemetoder) ns.lookup (\"db\");
           
      }
       
        catch (java.net.MalformedURLException mue)
        {
          System.out.println (mue.toString());
          System.exit (1);
        }
        catch (NotBoundException nbe)
        {
            System.out.println (nbe.toString());
            System.exit (2);
        }
        catch (RemoteException re)
        {
          System.out.println (re.toString());
          System.exit (3);
            }

    }

}

Problemet er følgende at jeg har en GUI klasse hvor en event lavet en lookop hver gang den aktivers. Vil nu hellere oprettet et objekt af klassen adgangTilRemoteObjekt og lade denne returnere mit RMI objekt til min GUI klasse, hvordan kan det gøres ??


// GUI klasse indeholdede event ?
if (knap == opret_knap)
{
try
      {
       
        System.out.println(\"Connecter til NameServeren(Objekt)\");
        RMINameServer ns = (RMINameServer) Naming.lookup (\"rmi://192.168.179.210/NameServer\");
            database = (Databasemetoder) ns.lookup (\"db\");
       
Avatar billede thomaz Nybegynder
26. april 2001 - 16:17 #1
hmm har selv fundet ud af svaret så her kommer det:

public Databasemetoder returnInstance()
{
    return database;

// en lille udvidelse, idet jeg også bruger singleton mønstret i mit program. Derved sørger jeg for at der kun bliver oprettet et objekt af min klassee.

private static adgangTilRemoteObjekt uniqueInstance = null;       

public static adgangTilRemoteObjekt instance()
    {
        if(uniqueInstance == null)
        uniqueInstance = new adgangTilRemoteObjekt();
        return uniqueInstance;
    }

// og så skal constructoren være erklæret private
private adgangTilRemoteObjekt()
{

}

Avatar billede thomaz Nybegynder
30. oktober 2001 - 15:24 #2
eget 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

IT-JOB

Capgemini Danmark A/S

Open Application (Denmark)

Politiets Efterretningstjeneste

Teamledere til PETs indhentningsafdeling

Politiets Efterretningstjeneste

IT Sikkerhedsarkitekt i PET

Lægemiddelstyrelsen

Løsningsarkitekt