Pas de mise en œuvre a été lié - Java Guice

Novice ici, essayez d'utiliser un mannequin Java Facebook app qui utilise Guice à injecter une base de données de la dépendance dans le Facebook de l'usine, mais continuer à avoir Guice d'erreur me disant:

### Pas de mise en œuvre pour com.exemple.le stockage.Db annotée avec @com.exemple.le stockage.les annotations.SystemDb() a été tenu lors de la localisation de com.exemple.le stockage.Db annotée avec @com.exemple.le stockage.les annotations.SystemDb() pour le paramètre 0 com.exemple.facebook.client.des exceptions.FacebookExceptionHandlerDb au com.exemple.facebook.client.guice.FacebookClientModule.configurer

### Ne pouvait pas trouver un constructeur dans com.exemple.facebook.statsd.StatsdClient. Les Classes doivent avoir un (et un seul) constructeur annotée avec @Inject ou un zéro argument du constructeur qui n'est pas privé. au com.example.facebook.statsd.StatsdClient.class lors de la localisation de com.exemple.facebook.statsd.StatsdClient pour le paramètre 1 au com.exemple.facebook.client.des exceptions.FacebookExceptionHandlerDb. com.exemple.facebook.client.guice.FacebookClientModule.configurer

Code pour app:

app.java

package com.example.facebook;

import com.google.inject.Guice;
import com.restfb.Connection;
import com.restfb.types.Post;
import com.example.facebook.client.FacebookClientFactory;
import com.example.facebook.client.RobustFacebookClient;
import com.example.facebook.client.guice.FacebookClientModule;
import com.example.facebook.statsd.StatsdClient;

public class App  {
    public static void main ( String[] args ) {
          final FacebookClientFactory facebookClientFactory =
            Guice.createInjector(new FacebookClientModule()).getInstance(FacebookClientFactory.class);
          //error from line above
          final RobustFacebookClient robustFacebookClient =
            facebookClientFactory.create("accessToken");
          //more ...
    }

L'erreur qui en résulte points me FacebookClientModule de liaison:

FacebookClientModule.java

public class FacebookClientModule extends AbstractModule {
    bind(FacebookExceptionHandler.class).to(FacebookExceptionHandlerDb.class);
    //error resulting from the failed binding on the FacebookExceptionHandlerDB class

    install(new FactoryModuleBuilder()
            .implement(FacebookClient.class, RobustFacebookClient.class)
            .build(FacebookClientFactory.class));
    }

}

Où à l'intérieur de la FacebookExceptionHandleDB classe, le constructeur a l'injection:

FacebookExceptionHandlerDB.java

public class FacebookExceptionHandlerDb implements FacebookExceptionHandler {

    //list of class String variables ... 
    private final FacebookErrorParser parser;
    private final Db db;
    private StatsdClient statsd;

    @Inject
    public FacebookExceptionHandlerDb(@SystemDb Db db, StatsdClient statsd,    FacebookErrorParser parser) {
        this.db = db;
        this.statsd = statsd;
        this.parser = parser;
    }
}

De ce que je peux lueur, l'injection de dépendance pour les paramètres zéro et un, db et statsD respectivement, est un échec. Quelqu'un pourrait-il point où ou quoi dans le code de l'application est manquant?

OriginalL'auteur Lorena Nicole | 2014-07-15