gwt 服务器端到客户端

gwt server side to client side

我的程序可以在客户端使用"fireEvent",然后异步回调。

但是如果服务器执行错误/错误,如何直接从服务器端调用客户端功能,如 "MessageBox"? (显示错误消息的消息框)

服务器端: ABC.java

try {

//SFTP coding

} catch (JSchException e) {
System.err.println("Time out for connecting SFTP server");

//What should i put here to call MessageBoxHandler
//MessageBoxHandler(String a, String b);
//cannot call client side function in server side...
}

客户端:

public class MessageBoxHandler {

public MessageBoxHandler(String a, String b) {

    MessageBox.alert(a, b,
            new Listener<MessageBoxEvent>() {

                @Override
                public void handleEvent(MessageBoxEvent be) {
                    if (be.getButtonClicked().getItemId()
                            .equals(Dialog.OK)) {

                    //may be a action should be here , nvm
                    //i just want to show messageBox only

                    }
                }
            });

}
}

我不确定我理解你在做什么,但我认为这不是好的方法。您应该做的是使用 RPC(因为这显然是您正在使用的),而不仅仅是在服务器端捕获异常并记录错误,您应该在服务器端方法中抛出异常以在 onFailure 客户端 RPC 回调方法。

您应该检查 _Handling Excpetions 部分下的 this tutorial