Исключение GWT2.2 java.lang.RuntimeException: сбой отложенной привязки для класса (вы забыли наследовать требуемый модуль?)

#gwt #binding #deferred

#gwt #привязку #отложенная

Вопрос:

Я использую gwt 2.2 и столкнулся со следующим исключением: 18:43: 48.896 [ОШИБКА] [dms] Не удалось создать экземпляр ‘package.DMS ‘ через отложенную привязку

 java.lang.RuntimeException: Deferred binding failed for 'package.client.FileServiceAsync' (did you forget to inherit a required module?)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53)
    at com.google.gwt.core.client.GWT.create(GWT.java:98)
    at person.tanjinfu.dms.client.DMS.amp;<initamp;>(DMS.java:61)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:465)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:375)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:183)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
    at java.lang.Thread.run(Thread.java:619)
Caused by: com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
    at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:503)
    at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:49)
    at com.google.gwt.core.client.GWT.create(GWT.java:98)
    at person.tanjinfu.dms.client.DMS.amp;<initamp;>(DMS.java:61)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.google.gwt.dev.shell.ModuleSpace.rebindAndCreate(ModuleSpace.java:465)
    at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:375)
    at com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:183)
    at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:510)
    at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:352)
    at java.lang.Thread.run(Thread.java:619)
  

Кто-нибудь может мне помочь?

Комментарии:

1. Пожалуйста, опубликуйте свой .gwt.xml файл

Ответ №1:

Вы должны использовать GWT.create() в синхронном интерфейсе, подобном GWT.create(FileService.class) . Ваше исключение выглядит так, что вы создаете неасинхронный интерфейс. GWT возвращает экземпляр, который реализует ваш асинхронный интерфейс, даже если вы передаете интерфейс синхронизации при создании.

Также убедитесь, что ваш интерфейс синхронизации расширяет интерфейс RemoteService.

Комментарии:

1. спасибо, Зас, я выяснил причину. Мое утверждение GWT.create(FileServiceAsync.class) вместо FileSercice.class, что вызвало исключение.

2. Не следует ли вам пометить ответ как правильный, обратите внимание на зеленую галочку рядом с ответом 🙂