使用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。
请,建议。
感谢。
答案 0 :(得分:1)
@GinModules(AppClientModule.class)
应该是
@GinModules(AppModule.class)
<强>更新强>
错误在线声明AppInjector
。它应该是:
interface AppInjector extends Ginjector {