2013-08-07 3 views
0

Я написал несколько Asynccall для запуска чего-то на сервере. Они отлично работают. Но для выполнения некоторых задач требуется много времени. Я хочу знать их статус во время исполнения. Затем я пишу новый Asynccall, который периодически отправляет запрос серверу, чтобы проверить статус задачи. Но для Callback я могу получить только сообщение об ошибке. Я проверил журнал, этот AsyncCallbak не может быть выполнен. Может ли кто-нибудь дать мне какое-нибудь предложение?GWT Asnyccall не может быть выполнен

 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); 
+0

Что вы подразумеваете под «не может быть выполнено»? Вы имеете в виду, что он не выполнен, даже если вы его вызываете, или что есть, и сообщение об ошибке, и сообщение в журнале, сообщающее, что вызов был неудачным (если да, можете ли вы отправить сообщение в журнале)? – otonglet

+0

Thx для вашей помощи. – user2659695

+0

Я уверен, что обратный вызов вызывается каждые 5 секунд. Но я думаю, обратный вызов не выполняется, потому что первая строка обратного вызова - logger.info (...), но я ничего не получаю из файла журнала. – user2659695

ответ

0

Я нашел ошибку. В моем методе я должен отправить некоторые объекты в backend. Эти объекты должны реализовывать Serializeable.

+0

Хорошо, поздравляю. Исключение SerializationException должно появиться в журналах. – otonglet

Смежные вопросы