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