problem z RMI

0

Witam. Mam problem na samym początku z przygodą z RMI...

Niewiem dlaczego nie moge skompilować małego programiku...

Stworzyłem dwa projekty, helloServer i helloClient, oczywiscie w tych projektach są klasy helloServer i HelloClient wraz z odpowiednimi Interfejsami... . Dodałem zmienną środowiskową rmiregistry,JAVAHOME. Programik odpala się z pod consoli... wchodzę do meni start... cmd...

start rmiregistry

//przechodze do podkatalogu src HelloServer
javac HelloServer.java
rmic HelloServer
java HelloServer

//przechodze do podkatalogu src HelloClient
java HelloClient 127.0.0.1:1100  // 1100 bo na takim porcie słucha serwer

I otrzymuje taki błąd

java.rmi.UnknownHostException: Unknown host: localhost:1100; nested exception is
:
        java.net.UnknownHostException: localhost:1100
        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
        at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
        at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
        at sun.rmi.server.UnicastRef.newCall(Unknown Source)
        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
        at HelloClient.main(HelloClient.java:16)
Caused by: java.net.UnknownHostException: localhost:1100
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown S
ource)
        at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown S
ource)
        ... 6 more
0

Dołanczam się do pytania. Nie ma ktokolwiek pomyslu jak te rmiregistry robi ?

0

Kiedyś zrobiłem to tak: (wiem, że sterowanie wyjątkami nie jest najlepsze, ale trudno_

Serwer:

Remote obj = // nasz obiekt
Remote stub = UnicastRemoteObject.exportObject(obj, PORT);

Registry registry = LocateRegistry.getRegistry(null, PORT);
try {
    registry.rebind("ServerInterface", stub);
} catch (NoSuchObjectException e) {
    LocateRegistry.createRegistry(PORT);
    registry.rebind("ServerInterface", stub);
}

Klient:

Registry registry = LocateRegistry.getRegistry(null, PORT));
NaszObiekt obj = (NaszObiekt) registry.lookup("ServerInterface");

Czegoś takiego, jak "rmic" nie używałem.

0

ok dzieki, jutro z samego rana popatrze, jakbyś miał jakieś źródła z jakich korzystałes to wklej poniżej. Jeszcze raz dzięki.

0

ok rozwiązałem problem dzięki za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0