You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.3 KiB

  1. package verteiltesysteme.rmi;
  2. /* damit der Server gestartet werden kann, muss die rmiregistry (Verzeichnisdienst
  3. * fr bereitgestellte Funktionen und deren Parameter etc., vgl. Folien, laufen.
  4. * Hierfr kann in Eclipse ber "Run --> External Tools" eine neue "External Tool
  5. * Configuration" erstellt werden, die die rmiregistry aufruft:
  6. *
  7. * - New Configuration, "Progam" auswhlen, (+ Symbol)
  8. *
  9. * - Im Tab "Main" --> Location z.B. fr Standard Java 8 JRE unter Windows:
  10. * C:\Program Files\Java\jre1.8.0_181\bin\rmiregistry.exe
  11. *
  12. * - Im Tab "Environment" --> Variable "CLASSPATH" anlegen und auf das bin
  13. * Verzeichnis des Projects z.B.
  14. * C:\Users\<username>\git\verteilte-systeme-bsc-ai-examples\
  15. * VerteilteSysteme-Examples\bin"
  16. * zeigen lassen. Danach mittels "Run" rmiregistry starten.
  17. *
  18. * - Run Configuration fr die in diesem File gezeigte Klasse RMIEchoServer muss
  19. * im Tab "Arguments" im Feld "VM Arguments:" folgendes eingetragen haben:
  20. * -Djava.rmi.server.codebase=file:${workspace_loc:VerteilteSysteme-Examples/bin/}
  21. * damit die fr den RMIEchoServer erfoderlichen Klassen als codebase in RMI
  22. * verfgbar sind
  23. */
  24. import java.rmi.RemoteException;
  25. import java.rmi.registry.LocateRegistry;
  26. import java.rmi.registry.Registry;
  27. import java.rmi.server.UnicastRemoteObject;
  28. public class RMIEchoServerWithRegistry implements RMIEchoInterface {
  29. public RMIEchoServerWithRegistry() {
  30. }
  31. public static void main(String args[]) {
  32. try {
  33. RMIEchoServerWithRegistry obj = new RMIEchoServerWithRegistry();
  34. RMIEchoInterface stub = (RMIEchoInterface) UnicastRemoteObject.exportObject(obj, 0);
  35. // Bind the remote object's stub in the registry
  36. // create a local registry on default port 1099 (tcp)
  37. Registry registry = LocateRegistry.createRegistry(1099);
  38. // Use rebind to simply replace existing binding
  39. registry.rebind("RMIEchoInterface", stub);
  40. System.out.println("Server ready");
  41. } catch (Exception e) {
  42. System.err.println("Server exception: " + e.toString());
  43. e.printStackTrace();
  44. }
  45. }
  46. @Override
  47. public String toLowerCase(String input) throws RemoteException {
  48. return input.toLowerCase();
  49. }
  50. @Override
  51. public String toUpperCase(String input) throws RemoteException {
  52. return input.toUpperCase();
  53. }
  54. }