Why am I getting "classes must have either one (and only one) constructor" error?
<p>I have been trying to get Guice working but end up with this:</p>

<blockquote>
  <p>Classes must have either one (and only one) constructor</p>
</blockquote>

<p>My interface:</p>

<pre><code>public interface AddrBookStore {
    public Contact getContactByKey(String key);
    public void addContact(Contact c);
}
</code></pre>

<p>The implementation:</p>

<pre><code>public class RdbmsBasedAddrBookStore implements AddrBookStore {
    private Connection connection;

    public RdbmsBasedAddrBookStore(Connection connection) {
        this.connection = connection;
    }

    @Override
    public Contact getContactByKey(String key) throws AddrBookException
    {} 
    @Override
    public void addContact(Contact c) throws AddrBookException
    {}
}
</code></pre>

<p>The binding module:</p>

<pre><code>public class ABguiceConfingModule extends AbstractModule {
    @Override
    protected void configure() {        
        bind(AddrBookStore.class).to(RdbmsBasedAddrBookStore.class);
    }
}
</code></pre>

<p>The <code>AddrBook</code> client where I am injecting:</p>

<pre><code>public class AddrBook {
    private AddrBookStore store;

    @Inject
    public AddrBook(AddrBookStore store)
    {
        this.store = store;
    }
    ... other methods;
}
</code></pre>

<p>And my main: </p>

<pre><code>public class App 
{
    public static void main( String[] args ) throws Exception
    {
        Injector injector = Guice.createInjector(new ABguiceConfingModule() );
        AddrBookStore store = injector.getInstance( AddrBookStore.class );

        AddrBook book = new AddrBook(store);
        AddrBookCLI cli = new AddrBookCLI(book);
        cli.interact(new InputStreamReader(System.in), new OutputStreamWriter(System.out));

}}
</code></pre>

<p>After all this, I'm getting this error: </p>

<pre><code>1) Could not find a suitable constructor in addrbook.store.RdbmsBasedAddrBookStore. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private.
[ERROR] at addrbook.store.RdbmsBasedAddrBookStore.class(RdbmsBasedAddrBookStore.java:23)
[ERROR] at addrbook.ABguiceConfingModule.configure(ABguiceConfingModule.java:13)
</code></pre>

<p>I have experience with Spring and not with Guice. Where am I going wrong here?</p>