【问题标题】:Gin problem using GWT and Guice. - java.lang.RuntimeException: Deferred binding failed for使用 GWT 和 Guice 的杜松子酒问题。 - java.lang.RuntimeException:延迟绑定失败
【发布时间】:2011-06-01 11:04:32
【问题描述】:

我在使用 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' 的延迟绑定失败(您是否忘记继承所需的模块?)。

我尝试使用 gin 1.0 和 guice 2.0。

请指教。

谢谢。

【问题讨论】:

  • 您的代码在我看来没问题。您是否检查过类路径中是否包含所有必需的文件:AFAIK 您需要 gin.jar、guice.jar、aopalliance.jar
  • 肯定还有其他错误报告来指导您,准确提示问题所在。

标签: gwt guice gwt-gin


【解决方案1】:
@GinModules(AppClientModule.class)

应该是

@GinModules(AppModule.class)

更新:

错误在声明 AppInjector 的行中。应该是:

interface AppInjector extends Ginjector {

【讨论】:

  • 我希望这是个问题,但事实并非如此。 :) 谢谢彼得。
  • 您的 .gwt.xml 文件中有 '` 吗?
  • 是的,我已经编辑了我的帖子,包括 xml 模块文件。还有其他想法吗?
  • 你的MainForm 有无参数构造函数吗?
  • 没有无参数构造函数,重要吗?顺便说一下,在这一行抛出异常: private final AppInjector injector = GWT.create(AppInjector.class);所以我认为问题不在于无参数构造函数,你怎么看?
猜你喜欢
  • 2011-07-26
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 2014-12-17
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 2012-05-12
相关资源
最近更新 更多