RMI RMI, Callback und Netzwerk

beginner99

Aktives Mitglied
Hallo,

habe ein Problem mein RMI Server und client netzwerkfähig zu machen.
Bin RMI Anfänger und habe das ganze anhand eines Bsp. aufgebaut. Lokal (server und client auf dem gleichen pc) funktionierte es wunderbar. Als ich es dann im Netzwerk probierte ging gar nichts mehr.

Dann habe ich gegoogelt und einige Dinge geändert. Jetzt geht lokal nichts mehr:

java.rmi.server.ExportException: Port already in use: 1099; nested exception is:
java.net.BindException: Address already in use: JVM_Bind

Ok, verständlich, ich kann lokal also den server und den client (der ja auch serve rist wegen callback) nicht laufen lassen? Oder was ist das Problem?



Im Netzwerk funktioniert es trotzem noch nicht:

- Ich starte den Server auf PC 1. -> funktioniert

Java:
    public static void main(String[] args) throws Exception {
        // start rmi registry
        LocateRegistry.createRegistry(Registry.REGISTRY_PORT); //RMI-Port 1099
        Registry registry = LocateRegistry.getRegistry();
        IServer server = new ServerImpl();
        registry.bind(IServer.BIND_NAME, server);

    }

- Ich starte den Client auf PC 2 -> funktioniert

Java:
    public static void main(String[] args) throws RemoteException{

        Client client;
        if (args.length == 0) {
            System.setProperty("java.rmi.server.hostname", "localhost");
            client = new Client("localhost", 1099, true);

        } else {
            System.setProperty("java.rmi.server.hostname", args[0]);
            client = new Client(args[0], 1099, true);
        }
        unicastRemoteObject = UnicastRemoteObject.exportObject(client, 1099);
        messageCallback = client;
    }

Dann rufe ich im client 1 methode auf die "login" heisst. Das geht. Der server gibt auch einen entsprechenden output.

Jede weitere Aktion vom client führt zu einer

java.rmi.NoSuchObjectException: no such object in table

Ja ich hab dannach gegoogelt, aber das alles hilft nicht wahnsinning viel.

Any ideas?
 
T

tuxedo

Gast
Könnte sein dass der Server das Objekt schon wieder abgeräumt hat, der Client das aber irgendwie zu spät mitbekommt ... *geraten*

Vielleicht magst du dein Sample mal mit SIMON probieren?

- Alex
 

beginner99

Aktives Mitglied
Könnte sein dass der Server das Objekt schon wieder abgeräumt hat, der Client das aber irgendwie zu spät mitbekommt ... *geraten*

Vielleicht magst du dein Sample mal mit SIMON probieren?

- Alex

Per google habe ich ähnliche Antworten auf das Problem gefunden nur ist mir nicht ganz klar, wie man das beheben sollte und welches Objekt bereits abgeräumt wurde. (Der server?)

Deshalb habe ich bereits im Client und im Server eine statische referenz zu sich selbst.
(siehe code oben).
Dies scheint aber nichts zu helfen.
 
T

tuxedo

Gast
Hmm, ich glaube ein ähnliches Problem wurde hier in den letzten 2 Monaten schonmal diskutiert. Weiß aber nicht mehr wie's ausgegangen ist.

Vielleicht schaust du mal mit der Forumsuche ob du da was findest...

- Alex

[update]

Du könntest deine Remote-Objekte auch das Interface "Unreferenced" implementieren lassen. Das ist ein spezielles RMI Interface das nur eine Methode namens "unreferenced" (wer hätt's gedacht :)) mitbringt. Diese Methode wird von RMI dann aufgerufen, wenn das Remote-Objekt abgeräumt wird. Wenn du da nen Sysout/Logoutput machst, siehst du wann das Objekt ungültig wird und nicht mehr benutzt werden kann/soll. Vielleicht kommst du mit der Info deiner Problemursache näher.
 
Zuletzt bearbeitet von einem Moderator:

beginner99

Aktives Mitglied
Hab ich probiert ebvor ich gepostet habe.

Noch folgendes:

Wenn ich den clientserver (=callback) mit port 1099 exportiere, bekomme ich obige Fehlermeldung
(NoSuchObjectException).

Wenn ich einen anderen port verwende bekomme ich eine ConnectionRefusedException.

Benutze ich lokal (server und client auf gleichem pc) für den server port 1099 und für den callback einen anderen port, funktioniert es einwandfrei.
 
T

tuxedo

Gast
Hast du irgend eine Art Firewall auf dem PC installiert?

Bei einigen Firewalls reicht es nicht aus sie testweise abzuschalten. Nein, man muss sie komplett deinstallieren.

- Alex
 

beginner99

Aktives Mitglied
echt unglaublich. Habe die main bisschen umgeschrieben und jetzt geht es. mir ist allerdings nicht ganz klar wieso. Windows firewall war vorher auch schon ausgeschaltet.

Java:
    public static void main(String[] args) throws RemoteException {

        //TODO: config reader or JOptionPane for host and port entry
        Client client;
        int serverPort = Integer.parseInt(System.getProperty("serverPort", "1099"));
        int clientPort = Integer.parseInt(System.getProperty("clientPort", "1099"));
        String host = System.getProperty("server", "localhost");
        client = new Client(host, serverPort, true);
        unicastRemoteObject = UnicastRemoteObject.exportObject(client, clientPort);
        messageCallback = client;
    }

Wie man sieht mache ich eigentlich nichts anderes als vorher.
Einzige erklärung könnte sein, dass ich nach dem ausschalten der firewall keinen neustart gemacht habe (was jetzt der fall war).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B callback thread udp Netzwerkprogrammierung 2
C RMI Callback Netzwerkprogrammierung 8
P RMI Callback (mit Threads?) Netzwerkprogrammierung 3
I Rmi Callback Netzwerkprogrammierung 5
I ActiveMQ-Messages übers Netzwerk Netzwerkprogrammierung 13
M Socket Netzwerk Übertragung zwischen 4 Clients Netzwerkprogrammierung 2
temi (Netzwerk-) Kommunikation zwischen Anwendungen. Wie? Netzwerkprogrammierung 5
W Das Netzwerk entfernen mit Wifi Manager Netzwerkprogrammierung 1
F Neuronales Netzwerk - Genetischer Algorithmus Netzwerkprogrammierung 0
windl Sporadische Aussetzer im Netzwerk Netzwerkprogrammierung 10
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
MaxG. Netzwerk Ping falsches ergebnis Netzwerkprogrammierung 7
T Netzwerk Login Felder ansprechen Netzwerkprogrammierung 1
B Netzwerk - Fernsteuerung Netzwerkprogrammierung 1
S Netzwerk-Framework gesucht Netzwerkprogrammierung 6
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
C Netzwerk Portzuweisungsproblem Netzwerkprogrammierung 0
I PingPong Spiel übers Netzwerk Netzwerkprogrammierung 1
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
M PongSpiel Netzwerk Netzwerkprogrammierung 1
D Geräte im Lokalen netzwerk auflisten Netzwerkprogrammierung 1
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
I Netzwerk FileShare Program Netzwerkprogrammierung 2
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
D Ermitteln ob WLAN-Netzwerk UDP unterstützt Netzwerkprogrammierung 1
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
B WebSocket Verbindungsaufbau aus localen Netzwerk Netzwerkprogrammierung 2
S Bilder durch's Netzwerk usw ... Netzwerkprogrammierung 10
Kr0e Dezentrales Soziales Netzwerk Netzwerkprogrammierung 48
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
vandread Zugriff auf Soziales Netzwerk mittels Java? Netzwerkprogrammierung 4
P Automatische Host suche im Netzwerk Netzwerkprogrammierung 3
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
S Netzwerk Verbindungsproblem mit Cajo Netzwerkprogrammierung 5
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
J Komplexes Netzwerk-Spiel im Internet Netzwerkprogrammierung 13
J ObjectInputStream im Netzwerk Netzwerkprogrammierung 8
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
A java im netzwerk anderen rechner runterfahren Netzwerkprogrammierung 3
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
M Netzwerk Programmierung Netzwerkprogrammierung 2
F Netzwerk-Designkonzept Netzwerkprogrammierung 2
D Ring-Netzwerk - wie fange ich an? Netzwerkprogrammierung 3
X Password übers Netzwerk schicken jPasswordField Netzwerkprogrammierung 2
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
c_sidi90 Alle Rechner im Netzwerk ermitteln Netzwerkprogrammierung 17
D Netzwerk-To-Do-Liste Netzwerkprogrammierung 5
Semox Socket Selbstgeschriebenen Webserver im lokalen Netzwerk publizieren? Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
T Netzwerk-Dateiübertragung optimieren Netzwerkprogrammierung 15
G Netzwerk Speed checken Netzwerkprogrammierung 3
L Socket Socketverbindung nur im lokalen Netzwerk Netzwerkprogrammierung 12
F Char über Netzwerk senden Netzwerkprogrammierung 6
P SocketServer im lokalen netzwerk suchen Netzwerkprogrammierung 2
I Objekte über das Netzwerk Netzwerkprogrammierung 5
agent47 IP Adressen im Lokalen Netzwerk Scannen Netzwerkprogrammierung 7
S Netzwerk und Objekte Netzwerkprogrammierung 5
G Netzwerk IP Frage Netzwerkprogrammierung 4
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
W funktionen übers netzwerk nutzen Netzwerkprogrammierung 4
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
M upnp Device-Discovery im Netzwerk Netzwerkprogrammierung 5
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
H MySQL übers Netzwerk Netzwerkprogrammierung 9
A Probleme mit kleinem Netzwerk Programm Netzwerkprogrammierung 30
T Pfadangabe beim kopieren übers Netzwerk Netzwerkprogrammierung 5
G Verschlüsselte Strings über Netzwerk verschicken Netzwerkprogrammierung 19
D robustes Netzwerk Netzwerkprogrammierung 2
N HTML-Übertragung im lokalen Netzwerk mit Java - wie? Netzwerkprogrammierung 6
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
D BufferedImage über das Netzwerk senden Netzwerkprogrammierung 2
E Netzwerk Fehlererkennung Netzwerkprogrammierung 11
M Pc's im Netzwerk auflisten Netzwerkprogrammierung 2
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
ModellbahnerTT Problem feste String ins Netzwerk zu geben Netzwerkprogrammierung 5
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
TheJavaKid Anzahl der Server im Netzwerk Netzwerkprogrammierung 7
R Spiel auf Netzwerk auslegen? Netzwerkprogrammierung 10
R Applet & Netzwerk Netzwerkprogrammierung 4
K netzwerk durchsuchen Netzwerkprogrammierung 10
A array übers netzwerk (anfänger) Netzwerkprogrammierung 8
T Möglichkeit über das Netzwerk eine Funktion zu starten? Netzwerkprogrammierung 2
flashfactor Dateien im Netzwerk kopieren Netzwerkprogrammierung 2
R File chooser übers Netzwerk Netzwerkprogrammierung 3
A Betriebssystem über Netzwerk ermitteln Netzwerkprogrammierung 11
B Netzwerk-IP´s sammeln Netzwerkprogrammierung 16
S Netzwerk übers Internet Netzwerkprogrammierung 30
J Brauche hilfe bei Projekt: Netzwerk Chatprogramm Netzwerkprogrammierung 12
M anpingen, liste aller IPs im netzwerk erhalten Netzwerkprogrammierung 5
S Spiel über Netzwerk. Netzwerkprogrammierung 7
O wie schnell kann java netzwerk sein? Netzwerkprogrammierung 7
D Netzwerk Betrachtung mit vielen Clients Netzwerkprogrammierung 2
D Netzwerk Game, bitte hilfe. Netzwerkprogrammierung 2
L netzwerk mit thread Netzwerkprogrammierung 3
B Netzwerk simulieren Netzwerkprogrammierung 2
8 ByteArray per Netzwerk verschicken Netzwerkprogrammierung 6
P Serialialiserte Objekte übers Netzwerk verschicken Netzwerkprogrammierung 9
T Client-Authorisierung-Netzwerk Netzwerkprogrammierung 4
G Verzeichnis eines Rechners übers Netzwerk auslesen Netzwerkprogrammierung 5
B Netzwerk Dokumentation Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben