Y
YXCFREWQA
Gast
Ich habe eine Konsolenanwendung, die Methoden via RMI zur verfügung stellt und eine GUI-Anwendung mit der ich über die RMI-Methoden Optionen setzen kann. Nun möchte ich einige Ausgaben aus der Konsolenanwendung in die GUI übertragen und die in der Konsolenanwendung vorhandene "Observable" anzapfen.
Ich kann mich verbinden und nun auch ohne Exceptions als Observer bei der Konsolenanwendunf eintragen, aber der Rückweg klappt leider nicht. Bei der GUI kommen keine Daten an.
Konsolenanwendung.
GUI-Anwendung (nur die Hilfsklassen für die Datenannahme)
Wo liegt mein (Denk-) Fehler? ;-)
Vielen Dank schonmal fürs Lesen!
Ich kann mich verbinden und nun auch ohne Exceptions als Observer bei der Konsolenanwendunf eintragen, aber der Rückweg klappt leider nicht. Bei der GUI kommen keine Daten an.
Konsolenanwendung.
Java:
public class Console extends Observable implements RMI_Interface
public Console(){
UnicastRemoteObject.exportObject(this, 1099);
}
public void somethink(String s){
setChanged();
notifyObservers(s);
}
}
public interface Console_RMI extends Remote {
public void addObserver123(Observer observer, String s) throws RemoteException;
}
GUI-Anwendung (nur die Hilfsklassen für die Datenannahme)
Java:
public class RMI {
private static RMI rmi = null;
private static Console_RMI console;
public static RMI getInstance() throws RemoteException, NotBoundException {
if (rmi == null) {
rmi = new RMI();
}
return rmi;
}
private RMI() throws RemoteException, NotBoundException {
}
public static boolean connect(String ip, int port) {
boolean success = false;
System.out.println("connect RMI with: " + ip + " " + port);
Registry myRegistry;
try {
myRegistry = LocateRegistry.getRegistry(ip, port);
console = (Console_RMI) myRegistry.lookup("console");
success = true;
} catch (NotBoundException ex) {
Logger.getLogger(RMI.class.getName()).log(Level.SEVERE, null, ex);
} catch (AccessException ex) {
Logger.getLogger(RMI.class.getName()).log(Level.SEVERE, null, ex);
} catch (RemoteException ex) {
Logger.getLogger(RMI.class.getName()).log(Level.SEVERE, null, ex);
}
return success;
}
public Console_RMI getConsole() {
return console;
}
}
public class Helper implements Observer, Serializable {
public Helper() throws RemoteException {
try {
RMI.getInstance().getConsole().addObserver123(this, "aaa");
} catch (RemoteException ex) {
Logger.getLogger(Helper.class.getName()).log(Level.SEVERE, null, ex);
} catch (NotBoundException ex) {
Logger.getLogger(Helper.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void update(Observable o, Object arg) {
System.out.println("XXXXXXXXXXXXXXXXXXXX " + o + " " + arg);
}
}
Wo liegt mein (Denk-) Fehler? ;-)
Vielen Dank schonmal fürs Lesen!