NotBoundException

Status
Nicht offen für weitere Antworten.

Vril

Bekanntes Mitglied
Hallo,

ich habe versucht ein kleines RMI Beispiel zu machen, "Adder", sprich Client übergibt dem Server zwei Zahlen und der liefert daraufhin die Summe der beiden Zahlen zurück. Nur bekomme ich beim starten der Server.class folgende Fehlermeldung:

Exception in thread "main" java.rmi.NotBoundException: Adder
at sun.rmi.registry.RegistryImpl.lookup(Unknown Source)
at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.oldDispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:359)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at test.rmi.Client.main(Client.java:13)

Process completed.


Meine Klassen sehen so aus:
Java:
//Server:
package test.rmi;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.server.RemoteServer;
import java.rmi.server.UnicastRemoteObject;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;

public class Server {
	
	public static void main(String[] args) throws RemoteException, NotBoundException{
		try{
		
			LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
		} catch (RemoteException e){System.err.println(e);
		}
		
		AdderImpl adder = new AdderImpl();
		Adder stub = (Adder) UnicastRemoteObject.exportObject(adder, 0);
		RemoteServer.setLog(System.out);
		
		Registry registry = LocateRegistry.getRegistry();
		registry.rebind("Adder", stub);
		
		System.out.println("Adder angemeldet");
	}
}

//Client
package test.rmi;

import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
import java.rmi.RemoteException;
import java.rmi.NotBoundException;

public class Client{
	
	public static void main(String[] args) throws RemoteException, NotBoundException{
		
		Registry registry = LocateRegistry.getRegistry();
		Adder adder = (Adder) registry.lookup("Adder");
		System.out.println(adder.add(47,11));
	}
}

//AdderImpl
package test.rmi;

public class AdderImpl implements Adder{
	
	public int add(int x, int y){
		return x+y;
	}
}


//Adder
package test.rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface Adder extends Remote{
	
	int add(int x, int y) throws RemoteException;
}

Hat zufällig jemand eine Idee was ich da falsche mache?
"start rmiregistry" habe ich im Verzeichnis wo die einzelnen *.class liegen gemacht.
 

Vril

Bekanntes Mitglied
Danke für den Tip, aber hat leider nichts geholfen! Gleiche Fehlermeldung wie zuvor! :(
 
T

tuxedo

Gast
Die add-Methode deiner AdderImpl Klasse trägt eine andere Signatur als die im Adder Interface. Die müssen jedoch 100,0% übereinstimmen sonst sind sie eben nicht mit der Registry verbunden (genau das sagt ja die Fehlermeldung).

- Alex
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
X RMI: Client wirft NotBoundException Netzwerkprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben