2011-10-30 9 views
5

जिन मॉड्यूल:GWT जिन - तुच्छ यूज-केस में विफल रहता है (EventBus)

public class InjectorModule extends AbstractGinModule { 
    @Override 
    protected void configure() { 
     bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class); 
    } 
} 

इंजेक्टर:

@GinModules(InjectorModule.class) 
public interface Injector extends Ginjector { 
    EventBus getEventBus(); 
} 

GWT मॉड्यूल प्रवेश बिंदु:

public class Module1 implements EntryPoint { 
    private final Injector injector = GWT.create(Injector.class); 

    public void onModuleLoad() {   
     injector.getEventBus(); 
    } 
} 

निकाला जा रहा है कॉल करने के लिए injector.getEventBus() सबकुछ ठीक काम करता है। injector.getEventBus() कारणों के लिए कॉल:

Caused by: java.lang.RuntimeException: Deferred binding failed for 'com.google.web.bindery.event.shared.EventBus' (did you forget to inherit a required module?) 
at com.google.gwt.dev.shell.GWTBridgeImpl.create(GWTBridgeImpl.java:53) 
at com.google.gwt.core.client.GWT.create(GWT.java:97) 
at com.XXX.app.client.InjectorImpl.create_Key$type$com$google$web$bindery$event$shared$EventBus$_annotation$$none$$(InjectorImpl.java:72) 
at com.XXX.app.client.InjectorImpl.get_Key$type$com$google$web$bindery$event$shared$EventBus$_annotation$$none$$(InjectorImpl.java:86) 
at com.XXX.app.client.InjectorImpl.getEventBus(InjectorImpl.java:7) 
at com.XXX.app.client.Module1.onModuleLoad(Module1.java:24) 

GWT विकास मोड कहते हैं:

23:58:50.287 [ERROR] Deferred binding result type 'com.google.web.bindery.event.shared.EventBus' should not be abstract 

उत्तर

7

अगर आप gwt 2.4 का उपयोग कर रहे हैं:

वहाँ अब कर रहे हैं दो EventBus (अब मान्य नहीं है) सुनिश्चित करें कि आप प्रयोग कर रहे हैं इंजेक्टर में और आपके एंट्रीपॉइंट में एक ही प्रकार।

0

नोट: यदि आप जीडब्ल्यूटी गतिविधि का उपयोग कर रहे हैं और इस समस्या का सामना कर रहे हैं, तो कृपया इस टिकट को वर्कअराउंड के साथ तारांकित करें। https://code.google.com/p/google-web-toolkit/issues/detail?id=6653

संबंधित मुद्दे