Странное поведение с GWT может произойти, если:
- У вас есть класс "сервер" (не входит в исходный код)
- У вас есть только импорт на сервер класса
- Один из ваших bean-компонентов, используемых для связи службой, не сериализуем (или не расширяет IsSerializable), или любой из его атрибутов не сериализуем
- Ваш компонент, используемый для связи службой, не имеет конструктора параметров (или любого из родительского класса)
Ваш компонент, используемый для связи службой, имеет последнее поле
Я получил почти все из этого, когда искал, почему мой код не работает. Я не включил все случаи, конечно:)
Обновление
В нашем проекте мы расширяем AsyncCallback
public abstract class MyAsyncCallback<T> implements AsyncCallback<T> {
@Override
public final void onFailure(Throwable caught) {
yourLogger.log(caught);
onFailureDefault(caught);
}
protected abstract void onFailureImpl(Throwable caught);
}
Вы должны заменить все ваши AsyncCallback этим. Теперь у вас есть контроль над ошибками. Иногда там подавляется неправильная обработка ошибок.
Смотрите также GWT.setUncaughtExceptionHandler (обработчик GWT.UncaughtExceptionHandler)