diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java index d09ec6fe30ccfe0d40ddf69a55bf3bcd4c0def0a..b2c3b4fcb0951c57033f607b88c92050faeb27a8 100644 --- a/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServer.java @@ -42,7 +42,7 @@ public class RMIEchoServer implements RMIEchoInterface { Registry registry = LocateRegistry.getRegistry(); registry.bind("RMIEchoInterface", stub); - System.err.println("Server ready"); + System.out.println("Server ready"); } catch (Exception e) { System.err.println("Server exception: " + e.toString()); e.printStackTrace(); diff --git a/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServerWithRegistry.java b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServerWithRegistry.java new file mode 100644 index 0000000000000000000000000000000000000000..0c35c34e096216e6175d7767c8ffda9fb4cd5aef --- /dev/null +++ b/VerteilteSysteme-Examples/src/verteiltesysteme/rmi/RMIEchoServerWithRegistry.java @@ -0,0 +1,64 @@ +package verteiltesysteme.rmi; + +/* damit der Server gestartet werden kann, muss die rmiregistry (Verzeichnisdienst + * f�r bereitgestellte Funktionen und deren Parameter etc., vgl. Folien, laufen. + * Hierf�r kann in Eclipse �ber "Run --> External Tools" eine neue "External Tool + * Configuration" erstellt werden, die die rmiregistry aufruft: + * + * - New Configuration, "Progam" ausw�hlen, (+ Symbol) + * + * - Im Tab "Main" --> Location z.B. f�r Standard Java 8 JRE unter Windows: + * C:\Program Files\Java\jre1.8.0_181\bin\rmiregistry.exe + * + * - Im Tab "Environment" --> Variable "CLASSPATH" anlegen und auf das bin + * Verzeichnis des Projects z.B. + * C:\Users\<username>\git\verteilte-systeme-bsc-ai-examples\ + * VerteilteSysteme-Examples\bin" + * zeigen lassen. Danach mittels "Run" rmiregistry starten. + * + * - Run Configuration f�r die in diesem File gezeigte Klasse RMIEchoServer muss + * im Tab "Arguments" im Feld "VM Arguments:" folgendes eingetragen haben: + * -Djava.rmi.server.codebase=file:${workspace_loc:VerteilteSysteme-Examples/bin/} + * damit die f�r den RMIEchoServer erfoderlichen Klassen als codebase in RMI + * verf�gbar sind + */ + +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.rmi.server.UnicastRemoteObject; + +public class RMIEchoServerWithRegistry implements RMIEchoInterface { + public RMIEchoServerWithRegistry() { + } + + public static void main(String args[]) { + + try { + RMIEchoServerWithRegistry obj = new RMIEchoServerWithRegistry(); + RMIEchoInterface stub = (RMIEchoInterface) UnicastRemoteObject.exportObject(obj, 0); + + // Bind the remote object's stub in the registry + + // create a local registry on default port 1099 (tcp) + Registry registry = LocateRegistry.createRegistry(1099); + // Use rebind to simply replace existing binding + registry.rebind("RMIEchoInterface", stub); + + System.out.println("Server ready"); + } catch (Exception e) { + System.err.println("Server exception: " + e.toString()); + e.printStackTrace(); + } + } + + @Override + public String toLowerCase(String input) throws RemoteException { + return input.toLowerCase(); + } + + @Override + public String toUpperCase(String input) throws RemoteException { + return input.toUpperCase(); + } +} \ No newline at end of file