1

Ginの使用に問題があります。これが簡単な例です。

@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ファイル

<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'の遅延バインディングが失敗しました(必要なモジュールを継承するのを忘れましたか?)。

gin1.0とguice2.0で試してみました。

ご意見をお聞かせください。

ありがとう。

4

1 に答える 1

1
@GinModules(AppClientModule.class)

おそらく

@GinModules(AppModule.class)

アップデート:

エラーは、を宣言している行にありAppInjectorます。そのはず:

interface AppInjector extends Ginjector {
于 2011-06-01T11:16:27.180 に答える