2012-03-26 2 views
4

jeder! Ich habe ein Kompilierungsproblem in meiner GWT-App, die in 3 Module unterteilt ist: App-Kern: enthält die Hauptklassen ohne einen Einstiegspunkt, App-A und App-B: erben von App-Kern und enthalten dort bestimmte Klassen mit einem Einstiegspunkt in jedem Submodul.GIN Binding Probleme in GWTP-Anwendung

ich GIN bin mit Klassen-Instanzen in jedem Modul zu injizieren:

in App-Kern:

public interface App-coreGinjector extends Ginjector { 
EventBus getEventBus(); 
Provider<LoginPagePresenter> getLoginPagePresenter(); 
... 
} 

App-coreModule extends AbstractPresenterModule { 

protected void configureCore() { 
    install(new DefaultModule(App-corePlaceManager.class)); 
    bindConstant().annotatedWith(DefaultPlace.class).to(LoginPagePresenter.NAME_TOKEN); 
    ... 
    bind(AuthenticationManager.class).to(AuthenticationManagerImpl.class); 
    bindPresenter(LoginPagePresenter.class, LoginPagePresenter.MyView.class, 
        LoginPageView.class, LoginPagePresenter.MyProxy.class); 
} 

in App-A:

@GinModules({ App-AModule.class }) 
public interface App-AGinjector extends App-coreGinjector { 

MyApp-AScreen getMyApp-AScreen(); 
... 
} 

public class App-AModule extends App-coreModule { 

@Override 
protected void configure() { 

    configureCore(); 
      ... 
      //Here we bind the App-A classes inheriting from App-core classes 
      bind(App-coreScreenManager.class).to(App-AcreenManager.class).in(Singleton.class); 
      ... 
      //Here we bind the specific App=A classes 
    } 

Und wir tun das gleiche Sache in App-B

Die Maven Compilation ist erfolgreich für die App-A, aber es scheitern für die App-B, mit dieser m Nachricht:

[ERROR] Errors in 'C:\workspace\App-core\client\gin\App-coreGinjectorImpl.java' 
[ERROR] Line 790: Rebind result 'com.gwtplatform.mvp.client.proxy.PlaceManager' must be a class 
[ERROR] Line 818: Rebind result 'lu.sfeir.grh.client.authentication.AuthenticationManager' must be a class 
[ERROR] Line 1047: Rebind result 'lu.sfeir.grh.client.login.LoginPagePresenter.MyView' must be a class 
[ERROR] Line 2359: Rebind result 'com.google.gwt.event.shared.EventBus' cannot be abstract 
[ERROR] Cannot proceed due to previous errors 

Also das seltsame Teil int all dies ist, dass dieser Fehler aus dem gemeinsamen Modul zwischen diesen beiden Submodule kommen, Hexe ist die Bindung des LoginPagePresenter und der AuthentificationManager, aber wir haben diese Zusammenstellung Fehler nur eine in Untermodul. Also wenn jemand diesen König von Problemen hatte, warte ich auf seine wertvolle Hilfe ^^

Ah! Wenn Sie einige Präzisionen wünschen, seien Sie nicht schüchtern !!

+0

ein paar Fragen (dies alles hart ist, ohne Code, um zu sehen, GWTP hat eine Menge von Dateien, die es alle in bricht), was importieren Sie für den EventBus, ist es com.google.gwt.event.shared.EventBus? Auch Ihre PlaceManager-Implementierung sollte PlaceManagerImpl ableiten. Wenn Sie den Code bündeln können, sollte ich das für Sie aussortieren können, es gibt eine Menge, die schiefgehen kann, und es ist nicht einfach zu wissen, wo ich anfangen soll, nur von dem, was hier ist, zu schauen. Die Art, wie ich das anwende, ist zu vereinfachen, zuerst alles außer dem EventBus und dem PlaceManager zu entfernen und zu sehen, ob du es bekommen kannst –

Antwort

2

In GWTP 0,7 und alle EventBus Instanzen von

com.google.gwt.event.shared.EventBus; 
    to 
    com.google.web.bindery.event.shared.EventBus 

geändert Wenn Sie GWTP verwenden 0.6 Sie sie zurück ...

ändern müssen