Java 无法执行GWT asnycall

Java 无法执行GWT asnycall,java,ajax,gwt,gwt-rpc,Java,Ajax,Gwt,Gwt Rpc,我已经编写了一些异步调用来在服务器中运行一些东西。他们工作得很好。但有些任务需要很长时间才能运行。我想知道他们在行刑期间的情况。然后我编写新的异步调用,定期向服务器发送查询以检查任务的状态。但是对于回调,我只能得到失败消息。我已检查日志,无法执行此AsyncCallbak。谁能给我一些建议吗 private BackendRemoteServiceAsync service = GWT.create(BackendRemoteService.class); Ti

我已经编写了一些异步调用来在服务器中运行一些东西。他们工作得很好。但有些任务需要很长时间才能运行。我想知道他们在行刑期间的情况。然后我编写新的异步调用,定期向服务器发送查询以检查任务的状态。但是对于回调,我只能得到失败消息。我已检查日志,无法执行此AsyncCallbak。谁能给我一些建议吗

        private BackendRemoteServiceAsync service = GWT.create(BackendRemoteService.class);

        Timer timer = new Timer() {
    public void run() {
        try {
           ApplicationController controller = ApplicationController
                         .getInstance();
           BackendRequest request = new BackendRequest(
                Command.COMMAND_TASK_CHECKSTATUS,
                 controller.getSessionToken());
           request.setDomain(Domains.TASK);

          ...
                  service.callBackend(request, new AsyncCallback<BackendRequest>() {

            public void onFailure(Throwable caught) {
                task.setStatus("check status failure");
            }

            public void onSuccess(BackendRequest result) {

                if (result.isValid()) {
                task.setStatus("check status Success");                                                             ...
                } else
                            ;
                }

            });
            } catch (IllegalArgumentException ex) {
                Window.alert("IllegalArgumentException: "+ ex.getMessage());
            } catch (Throwable t) {
                Window.alert(t.getMessage());
            } finally {

            }
        }
    };
    timer.scheduleRepeating(5000);
private backendremoteservicesync service=GWT.create(BackendRemoteService.class);
定时器=新定时器(){
公开募捐{
试一试{
ApplicationController控制器=ApplicationController
.getInstance();
BackendRequest=新的BackendRequest(
Command.Command\u TASK\u CHECKSTATUS,
controller.getSessionToken());
request.setDomain(Domains.TASK);
...
callBackend(请求,新的AsyncCallback(){
失败时的公共无效(可丢弃){
task.setStatus(“检查状态失败”);
}
成功时公共无效(后端请求结果){
if(result.isValid()){
task.setStatus(“检查状态成功”)。。。
}否则
;
}
});
}捕获(IllegalArgumentException ex){
警报(“IllegalArgumentException:+ex.getMessage());
}捕获(可丢弃的t){
Window.alert(t.getMessage());
}最后{
}
}
};
定时重复(5000);

我找到了错误。在我的方法中,我必须将一些对象发送到后端。这些对象必须实现可序列化。

您所说的“无法执行”是什么意思?你的意思是即使你调用它也没有执行,还是有错误和一条日志消息告诉调用失败(如果是这样,你能发布日志消息吗)?我肯定,回调每5秒调用一次。但是我认为,回调没有执行,因为回调的第一行是logger.info(…),但是我从日志文件中什么也没有得到。但是是否调用了
onFailure
?既然你提到我只能得到失败的信息,你这是什么意思?是您在示例中提到的
service.callBackend
的参数,还是您简化了这里的调用?是的,调用了onFailure。当onFailure被调用时,浏览器应该弹出一个带有消息“call failure”的弹出窗口。好的,祝贺您。SerializationException应该出现在日志中。