如何将GWTP与ginjector扩展一起使用?

联合体

我有一个文件:

<extend-configuration-property name="gin.ginjector.extensions" value="test.client.gin.ClientInjectorAdditional"/>

我的ClientInjectorAdditional为:

public interface ClientInjectorAdditional extends Ginjector {


    NotificationFetcher getNotificationFetcher();

}

现在,我想在我的入口点类中注入NotificationFetcher。我试过了

public class Test implements EntryPoint {

    private static final ApplicationController controller = GWT.create(ApplicationController.class);

    @Inject
    private NotificationFetcher notificationFetcher;

    @Override

    public void onModuleLoad() {
        controller.init(;
    ...

    }
}

问题是没有注入notificationFetcher。

如何将GWTP与ginjector扩展一起使用?

编辑:

当我使用

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

我收到以下警告:

  No gin modules are annotated on Ginjector interface test.client.gin.ClientInjectorAdditional, did you forget the @GinModules annotation?

编辑:

我试过了:

@GinModules({ClientModule.class})公共接口ClientInjectorAdditional扩展了Ginjector {...}

但这会产生以下错误:

[DEBUG] [test] - Rebinding test.client.gin.ClientInjectorAdditional
    [DEBUG] [test] - Invoking generator com.google.gwt.inject.rebind.GinjectorGenerator
        [ERROR] [test] - Error injecting com.gwtplatform.dispatch.rest.client.ActionMetadataProvider: Unable to create or inherit binding: No @Inject or default constructor found for com.gwtplatform.dispatch.rest.client.ActionMetadataProvider
  Path to required node:

com.gwtplatform.dispatch.rest.client.RestRequestBuilderFactory [com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule.configureDispatch(RestDispatchAsyncModule.java:99)]
 -> com.gwtplatform.dispatch.rest.client.DefaultRestRequestBuilderFactory [com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule.configureDispatch(RestDispatchAsyncModule.java:99)]
 -> com.gwtplatform.dispatch.rest.client.ActionMetadataProvider [@Inject constructor of com.gwtplatform.dispatch.rest.client.DefaultRestRequestBuilderFactory]

        [ERROR] [test] - Error injecting com.gwtplatform.dispatch.rest.client.serialization.JacksonMapperProvider: Unable to create or inherit binding: No @Inject or default constructor found for com.gwtplatform.dispatch.rest.client.serialization.JacksonMapperProvider
  Path to required node:

com.gwtplatform.dispatch.rest.client.serialization.Serialization [com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule.configureDispatch(RestDispatchAsyncModule.java:103)]
 -> com.gwtplatform.dispatch.rest.client.serialization.JsonSerialization [com.gwtplatform.dispatch.rest.client.gin.RestDispatchAsyncModule.configureDispatch(RestDispatchAsyncModule.java:103)]
 -> com.gwtplatform.dispatch.rest.client.serialization.JacksonMapperProvider [@Inject constructor of com.gwtplatform.dispatch.rest.client.serialization.JsonSerialization]

[ERROR] [test] - Deferred binding failed for 'test.client.gin.ClientInjectorAdditional'; expect subsequent failures
[ERROR] [test] - Failed to create an instance of 'test.client.test' via deferred binding 
[ERROR] [test] - Unable to load module entry point class test.client.test (see associated exception for details)
[ERROR] [test] - Failed to load module 'test' from user agent 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36' at http-server.fritz.box:61196
舒克

GWTP与其所有演示者和视图获取者自动创建ginjector。它还支持为非GWTP对象扩展该ginjector。这是您的操作方式:

一种。定义一个接口,在some.package.client包中将其命名为GinjectorExtensions

package some.package.client;

public interface GinjectorExtensions {
    //your objects here
    MyConstants getMyConstants();  
    MyMessages MyMessages();
    MyRequestFactory getRequestFactory(); 
}

b。编辑您的GWT模块xml文件以包括以下行(告诉GWTP将您的代码行添加到它的autogen Ginjector中):

   <set-configuration-property name="gin.ginjector.extensions"
                              value="some.package.client.GinjectorExtensions"/> 

然后,您只需在任何地方@Inject您的对象,一切都将按预期方式工作。

编辑:检查完您的代码后,只需从ClientInjectorAdditional中删除“ extends Ginjector”,一切都会正常进行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将Crashlytics与iOS / OS X一起使用今天的扩展名?

来自分类Dev

如何将valgrind与实际上是宏扩展的函数一起使用

来自分类Dev

如何将扩展和折叠列表行与核心数据元素一起使用?

来自分类Dev

如何将Kendo UI MVC扩展与require js一起使用?

来自分类Dev

如何将地图与休眠注释一起使用

来自分类Dev

如何将MySQL REPLACE与变量一起使用?

来自分类Dev

如何将NSOperationQueue与NSURLSession一起使用?

来自分类Dev

如何将Cayley与Postgres后端一起使用?

来自分类Dev

如何将ContextFlyout与ListView一起使用?

来自分类Dev

如何将ActiveModelSerializer与group_by一起使用?

来自分类Dev

如何将requestAnimationFrame与TypeScript对象一起使用?

来自分类Dev

如何将Silex授权与OpenID一起使用?

来自分类Dev

如何将Sinon与Typescript一起使用?

来自分类Dev

如何将Viewholder与ExpandableListView一起使用?

来自分类Dev

如何将IN与块而不是对象一起使用?

来自分类Dev

如何将PostgreSQL与JSONB数据一起使用

来自分类Dev

如何将QVector与多个对象一起使用

来自分类Dev

如何将CSS calc()与继承一起使用?

来自分类Dev

如何将XCTAssertNil与可选结构一起使用?

来自分类Dev

如何将AdControl与多个AdUnitId一起使用?

来自分类Dev

如何将DataContractJsonSerializer与auth令牌一起使用

来自分类Dev

如何将Jest与React Native一起使用

来自分类Dev

如何将componentsSeparatedByString与多个对象一起使用

来自分类Dev

如何将TomcatEmbeddedServletContainerFactory与AbstractAnnotationConfigDispatcherServletInitializer一起使用

来自分类Dev

如何将TIdWhois与SOCKS代理一起使用

来自分类Dev

如何将ltrace与通配符一起使用

来自分类Dev

如何将Pikaday与ReactJS一起使用?

来自分类Dev

如何将Fuseki与Jena TDB一起使用

来自分类Dev

如何将DDPClient与Promise一起使用?

Related 相关文章

  1. 1

    如何将Crashlytics与iOS / OS X一起使用今天的扩展名?

  2. 2

    如何将valgrind与实际上是宏扩展的函数一起使用

  3. 3

    如何将扩展和折叠列表行与核心数据元素一起使用?

  4. 4

    如何将Kendo UI MVC扩展与require js一起使用?

  5. 5

    如何将地图与休眠注释一起使用

  6. 6

    如何将MySQL REPLACE与变量一起使用?

  7. 7

    如何将NSOperationQueue与NSURLSession一起使用?

  8. 8

    如何将Cayley与Postgres后端一起使用?

  9. 9

    如何将ContextFlyout与ListView一起使用?

  10. 10

    如何将ActiveModelSerializer与group_by一起使用?

  11. 11

    如何将requestAnimationFrame与TypeScript对象一起使用?

  12. 12

    如何将Silex授权与OpenID一起使用?

  13. 13

    如何将Sinon与Typescript一起使用?

  14. 14

    如何将Viewholder与ExpandableListView一起使用?

  15. 15

    如何将IN与块而不是对象一起使用?

  16. 16

    如何将PostgreSQL与JSONB数据一起使用

  17. 17

    如何将QVector与多个对象一起使用

  18. 18

    如何将CSS calc()与继承一起使用?

  19. 19

    如何将XCTAssertNil与可选结构一起使用?

  20. 20

    如何将AdControl与多个AdUnitId一起使用?

  21. 21

    如何将DataContractJsonSerializer与auth令牌一起使用

  22. 22

    如何将Jest与React Native一起使用

  23. 23

    如何将componentsSeparatedByString与多个对象一起使用

  24. 24

    如何将TomcatEmbeddedServletContainerFactory与AbstractAnnotationConfigDispatcherServletInitializer一起使用

  25. 25

    如何将TIdWhois与SOCKS代理一起使用

  26. 26

    如何将ltrace与通配符一起使用

  27. 27

    如何将Pikaday与ReactJS一起使用?

  28. 28

    如何将Fuseki与Jena TDB一起使用

  29. 29

    如何将DDPClient与Promise一起使用?

热门标签

归档