// Datei: AbteilungsServer.java
// Autor: Brecht
// Datum: 25.07.18
// Thema: Ein RMI-Server, der in jeder Abteilung implementiert
// wird. Er führt die RMI-Aufrufe über dem Telefonbuch
// der entsprechenden Abteilung aus. Siehe dazu den
// Grobentwurf zur Aufgabe.
//
// Aufruf: java AbteilungsServer "Einkauf"
// oder: java AbteilungsServer "Vertrieb"
// ========================================================
import java.rmi.*;
import java.rmi.registry.*;
import java.net.*;
class AbteilungsServer {
AbteilungsServer() throws Exception {}
public static void main(String[] args) throws Exception {
String abteilung = null;
int registryPort = 0;
// Param auswerten
// ---------------------------------------------------------
if(args.length != 1) {
System.out.println();
System.out.println("==================================");
System.out.println("Aufruf muss parametrisiert werden:");
System.out.println(" java AbteilungsServer Einkauf");
System.out.println("bzw.");
System.out.println(" java AbteilungsServer Vertrieb");
System.out.println("==================================");
System.out.println();
System.exit(0);
}
// Es gibt genau einen Param
// ---------------------------------------------------------
if(! (args[0].equals("Einkauf") ||
args[0].equals("Vertrieb") )) {
System.out.println();
System.out.println("==================================");
System.out.println("Parameterfehler: nur");
System.out.println(" java AbteilungsServer Einkauf");
System.out.println("bzw.");
System.out.println(" java AbteilungsServer Vertrieb");
System.out.println("==================================");
System.out.println();
System.exit(0);
}
abteilung = args[0];
// Lokaler Host, Abteilung und Registry-Port
// ---------------------------------------------------------
String localHost = InetAddress.getLocalHost().getHostName();
if(abteilung.equals("Einkauf"))
registryPort = 60069;
else
registryPort = 60086;
// Bei der Registry anmelden
// ---------------------------------------------------------
LocateRegistry.createRegistry(registryPort);
RmiImpl impl = new RmiImpl(abteilung);
Naming.rebind("rmi://" + localHost + ":" + registryPort
+ "/RmiAbfrage", impl);
System.out.println("\nAbteilungsserver ist aktiv");
System.out.println(" Abteilung: " + abteilung);
System.out.println(" Host : " + localHost);
System.out.println(" Reg.-Port: " + registryPort);
System.out.println();
System.out.println("Warte auf RMI-Requests");
System.out.println(" Methoden-Log:");
} // main()
}