Avatar billede meek Nybegynder
29. april 2002 - 11:48 Der er 1 kommentar og
1 løsning

RMI - oprettelse af remoteobjekt.

Hej Eksperter;

Jeg sidder her og roder med at få oprettet noget RMI i java. Jeg er rimelig grøn i hovedet lige nu, mest fordi jeg kun har mig selv at trække information fra. Og selvfølgelig jer, hvis I kan hjælpe.

Det jeg vil er at lave et Hotelstyringsystem, men først og fremmest vil jeg gerne have lavet en simpel RMI-server og en simpel RMI-Client. Dette er også lykkedes for mig. Nu kommer jeg så til remoteObjekter.

Jeg har lavet en primitiv klasse kaldet person. Denne person har én konstruktør, en getNavn() og en toString(). Nu vil jeg gerne have oprettet et personobjekt fra min Client. Men jeg er gået død i hvordan serveren skal tilbyde person-objektet for min klient.

Jeg har 4 filer:
HmsClient.java
HmsServer.java -> er et interface for:
HmsServerImpl.java -> som er serverimplementationen
person.java -> som er min objektklasse.

HmsClient skal oprette en person via HmsServer og HmsServerImpl.

Min kode indtil nu ser sådan ud:

HMSCLIENT.JAVA:
import java.awt.*;
import java.awt.event.*;
import java.rmi.*;

public class HmsClient {
  public HmsClient(String ip) {
    getRemoteHms(ip);
  }

  private void getRemoteHms(String ip) {
    try {
      String serverObjectName = "//" + ip + "/HmsServer";
      HmsServer myhms = (HmsServer) Naming.lookup(serverObjectName);

      person pers1 = new myhms.person("Meek", "meek@geek.dk");
      System.out.println("getNavn() :"+pers1.getNavn());
      System.out.println("toString() :"+pers1.toString());
    }
    catch (java.rmi.ConnectException ce) {
      System.err.println("Connection to server failed. " +
        "Server may be temporarily unavailable." );
    }
    catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }
  }
  public static void main(String args[]) {
    HmsClient HmsClientInstans = new HmsClient("localhost");
  }
}

HMSSERVER.JAVA
import java.rmi.*;

public interface HmsServer extends Remote {

  // Dette er HmsServeren som tager imod forbindelser fra RMI-klienter
}

HMSSERVERIMPL.JAVA
import java.rmi.*;
import java.rmi.server.*;
import java.util.*;
import java.io.*;
import java.net.*;

public class HmsServerImpl extends UnicastRemoteObject implements HmsServer {

  public HmsServerImpl() throws RemoteException {
    super();
  }

  public static void main(String args[]) throws Exception {
    System.err.println("Initializing server: please wait.");

    HmsServerImpl temp = new HmsServerImpl();

    String serverObjectName = "//localhost/HmsServer";
    Naming.rebind(serverObjectName, temp);
    System.err.println("HmsServeren kører nu på localhost.");
  }
}

PERSON.JAVA

public class person {
  private String navn;
  private String emailadr;

  public person(String N, String E) {
    navn = N;
    emailadr = E;
  }

  public String getNavn() {
    return navn;
  }

  public String toString() {
    return navn + ", " + emailadr;
  }
}



Dette er et laangt spørgsmål, som jeg nok spørger videre til -> derfor de mange points..

Meek
Avatar billede lyhr007 Nybegynder
29. april 2002 - 12:02 #1
Du kan vel lave en key->value (hashtabel eller array...) der kan indeholde personer i server klassen. Herudover kan du så lave en metode der kan adde persioner til den (remove, edit måske også). Husk at tilføje din add methode til server interfacet da clienten ellers ikke kan se det.

Skriv når du har prøvet det.
Avatar billede meek Nybegynder
09. maj 2002 - 00:46 #2
>lyhr007 - som jeg skriver er jeg rimelig grøn mht RMI, og dit svar har ikke hjulpet en disse.

Jeg roder videre med det, og stiller nye spørgsmål hvis jeg får mere specefikke problemer.. er lidt skuffet over at der ikke er flere der svarer, måske er RMI et område med meget få eksperter !!

meek
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

AL Sydbank A/S (tidligere Arbejdernes Landsbank)

Afdelingschef til GDPR & Tech Regulation

Capgemini Danmark A/S

SAP S/4HANA Business Controlling

Netcompany A/S

Test Consultant

Politiets Efterretningstjeneste

Configuration Manager til PET's IT-afdeling