Hallo,
ich versuche gerade das erste mal mit RMI zu arbeiten und habe mir zu diesem Zweck einige kurze Tutorials angesehen (u.a. auch das Tutorial von Galileo Computing :: Java 7 - Mehr als eine Insel - index auf dem mein Beispiel basiert.
Was ich eigentlich machen möchte ist, dass ich von meinem GUI Projekt auf das BL Projekt Daten übergebe. Dazu habe ich testweise im GUI Projekt in meiner Klasse CustomerGUIProxy folgendes (basierend eben auf dem Openbook) erstellt: (der code mit Adder macht für meinen Einsatzzweck zwar noch keinen Sinn, aber das werde ich wenn alles funktioniert dann ändern)
Das Interface Adder und die Implementierung AdderImpl sind im Projekt erstellt. Die Impl selbst ist wenig spannend und bietet nur die eine Methode:
Im BL Projekt ist ebenfalls das Interface Adder definiert und in der Klasse CustomerBLProxy ist folgendes implementiert:
Wenn ich die Projekte jetzt über meinen Tomcat starte und über das GUI Projekt die Methode
aufrufe wird diese zwar ohne Fehler abgearbeitet, ein Zugriff auf das BL Projekt findet jedoch nicht statt. Laut meinem Verständnis wüsste ich auch derzeit nicht wie das funktionieren sollte..
Leider habe ich bisher nur Code Beispiele gefunden wo sich Client und Server im selben Package und nicht in ganz verschiedenen Projekten befinden.
Könnte mir vielleicht jemand einen Denkanstoß liefern wie ich eine Verbindung zwischen GUI und BL Projekt erstelle?
Vielen Dank!
ich versuche gerade das erste mal mit RMI zu arbeiten und habe mir zu diesem Zweck einige kurze Tutorials angesehen (u.a. auch das Tutorial von Galileo Computing :: Java 7 - Mehr als eine Insel - index auf dem mein Beispiel basiert.
Was ich eigentlich machen möchte ist, dass ich von meinem GUI Projekt auf das BL Projekt Daten übergebe. Dazu habe ich testweise im GUI Projekt in meiner Klasse CustomerGUIProxy folgendes (basierend eben auf dem Openbook) erstellt: (der code mit Adder macht für meinen Einsatzzweck zwar noch keinen Sinn, aber das werde ich wenn alles funktioniert dann ändern)
Java:
public CustomerBean saveElement(CustomerBean element) {
try {
LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
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");
} catch (RemoteException e) {
e.printStackTrace();
}
return element;
}
Das Interface Adder und die Implementierung AdderImpl sind im Projekt erstellt. Die Impl selbst ist wenig spannend und bietet nur die eine Methode:
Java:
public int add(int x, int y) {
return x + y;
}
Im BL Projekt ist ebenfalls das Interface Adder definiert und in der Klasse CustomerBLProxy ist folgendes implementiert:
Java:
public CustomerBLProxy() {
try {
Registry registry = LocateRegistry.getRegistry();
Adder adder = (Adder) registry.lookup("Adder");
System.out.println(adder.add(47, 11));
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
Wenn ich die Projekte jetzt über meinen Tomcat starte und über das GUI Projekt die Methode
Code:
saveElement(CustomerBean element)
Leider habe ich bisher nur Code Beispiele gefunden wo sich Client und Server im selben Package und nicht in ganz verschiedenen Projekten befinden.
Könnte mir vielleicht jemand einen Denkanstoß liefern wie ich eine Verbindung zwischen GUI und BL Projekt erstelle?
Vielen Dank!