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.");
}
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.");
}