Джин проблема с использованием GWT и Guice. - java.lang.RuntimeException: отложенная привязка не удалась для - PullRequest
1 голос
/ 01 июня 2011

У меня проблема с использованием Джина. Вот простой пример.

@GinModules(AppModule.class)
public interface AppInjector extends Ginjector
{
  MainForm getMainPanel();
  TemplateForm getHeaderForm();
}

тогда вот модуль

import com.google.inject.Singleton;
    public class AppModule extends AbstractGinModule
    {
    @Override
    protected void configure()
    {
      bind(MainForm.class).in(Singleton.class);
    }
    }

и точка входа

public class MySampleApplication implements EntryPoint

private final AppInjector injector = GWT.create(AppInjector.class);

public void onModuleLoad()
{
  MainForm mf = injector.getMainPanel();
  RootPanel.get().add(mf);
}
}

И модуль xml file

<module rename-to="MySampleApplication">

    <!-- Inherit the core Web Toolkit stuff.                  -->
    <inherits name='com.google.gwt.user.User'/>

    <!-- Specify the app entry point class.                   -->
    <entry-point class='com.mySampleApplication.client.MySampleApplication'/>

    <inherits name="com.google.gwt.inject.Inject"/>

    <!-- Specify the app servlets.                   -->
    <servlet path='/MySampleApplicationService' class='com.mySampleApplication.server.MySampleApplicationServiceImpl'/>

</module>

После запуска этого кода я получил исключение:

ОШИБКА: не удалось создать экземпляр com.mySampleApplication.client.MySampleApplication с помощью отложенной привязки. java.lang.RuntimeException: отложенная привязка не удалась для com.mySampleApplication.client.gin.AppInjector '(вы забыли унаследовать требуемый модуль?).

Я пытался с джин 1.0 и guice 2.0.

Пожалуйста, совет.

Спасибо.

1 Ответ

1 голос
/ 01 июня 2011
@GinModules(AppClientModule.class)

, вероятно, должно быть

@GinModules(AppModule.class)

Обновление:

Ошибка в строке объявления AppInjector.Должно быть:

interface AppInjector extends Ginjector {
...