Skip to content
Snippets Groups Projects
Commit 33529d25 authored by Sebastian Rieger's avatar Sebastian Rieger
Browse files

Changed output of RMI Echo Server from System.err to System.out, added

RMI Echo Server that contains creation of a local registry, no need to
start rmiregistry in this case
parent 92a690ef
No related branches found
No related tags found
No related merge requests found
...@@ -42,7 +42,7 @@ public class RMIEchoServer implements RMIEchoInterface { ...@@ -42,7 +42,7 @@ public class RMIEchoServer implements RMIEchoInterface {
Registry registry = LocateRegistry.getRegistry(); Registry registry = LocateRegistry.getRegistry();
registry.bind("RMIEchoInterface", stub); registry.bind("RMIEchoInterface", stub);
System.err.println("Server ready"); System.out.println("Server ready");
} catch (Exception e) { } catch (Exception e) {
System.err.println("Server exception: " + e.toString()); System.err.println("Server exception: " + e.toString());
e.printStackTrace(); e.printStackTrace();
......
package verteiltesysteme.rmi;
/* damit der Server gestartet werden kann, muss die rmiregistry (Verzeichnisdienst
* fr bereitgestellte Funktionen und deren Parameter etc., vgl. Folien, laufen.
* Hierfr kann in Eclipse ber "Run --> External Tools" eine neue "External Tool
* Configuration" erstellt werden, die die rmiregistry aufruft:
*
* - New Configuration, "Progam" auswhlen, (+ Symbol)
*
* - Im Tab "Main" --> Location z.B. fr 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 fr 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 fr den RMIEchoServer erfoderlichen Klassen als codebase in RMI
* verfgbar 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment