Java Swing/Rmi Problem

seawolf

Grünschnabel
Hallo Leute,

Ich habe ein grundsätzliches Problem /Aufgabenstellung:

Ueber Swing ruft ein Client über Rmi eine Methode eines Servers auf. Soweit so schlecht , der Server ruft seinerseits ueber callback dann noch eine Funktion des CLients auf , auch das funktioniert,,, NUR:

Ser Server ist fertig mit seiner Methode ( bei mir doSomething) Bevor der Client fertig ist, bzw. die Methode "showQuestionDialogFromCallback()" ist noch nicht fertig ausgführt da ist der Server schon fertig :!!

Kann mir jemand weiterhelfen ?

COde Serverausgeführt vom Client,beim Startup wenn ich auf einen Swing button "btDoSomethingActionPerformed" drücke):

public void doSomething() throws java.rmi.RemoteException {
System.out.println("doSomething started...");


// ask the client for the "missing" value via RMI callback
ICallback client = (ICallback)Naming.lookup("rmi://localhost/ICallback");
//HIer callback
String clientValue = client.askUser();
System.out.println("Got value from callback: " + clientValue);


Code Client:

Callback Methode vom Client :

public String askUser() throws java.rmi.RemoteException {
System.out.println("callback started...");
showQuestionDialogFromCallback();



System.out.println("callback finished.");
return "Yo!"; // just return anything
}

//HIer das Problem wird nicht mehr gewartet vom Server !!

private void showQuestionDialogFromCallback() {
try {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
System.out.println("dialog invocation started...");
JOptionPane.showConfirmDialog(parentFrame, "Are you OK?", "Question", JOptionPane.YES_NO_OPTION);
System.out.println("dialog invocation finished.");
}
 
Zurück