インターフェイスを別の実装にバインドするために、Google Guice を DI フレームワークとして使用しています。サーバーは正常に動作しますが、Resource クラスを呼び出そうとすると、次のエラーが発生します。バインディングがまったく機能しないというわけではありませんが、ほとんどの場合は失敗します。何が欠けているのかわからない。ソースコードの一部を以下に示します。
モジュールクラス
public class ABCModule extends AbstractModule {
@Override
protected void configure() {
bind(IConnection.class).to(ABCConnection.class);
}
インジェクションが行われるリソース クラス
public class Resource {
Logger log = LoggerFactory.getLogger(Resource.class);
private final IContact contact;
private final IContactFolder contactFolder;
@Inject
public MLContact(IConnection con, IContactFolder contactFolder) {
this.contact = contact;
this.con = con;
this.contactFolder = contactFolder;
}
//Resource class methods
..
......
}
私はguice-3.0.jarを使用しています
編集1:
INFO: Initiating Jersey application, version 'Jersey: 1.17 01/17/2013 04:27 PM' Aug 8, 2013 9:54:59 AM com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for constructor public com.motilink.server.services.MLContact(com.motilink.connector.IContact,com.motilink.connector.IConnection,com.motilink.connector.IContactFolder) at parameter index 0
SEVERE: Missing dependency for constructor public com.motilink.server.services.MLContact(com.motilink.connector.IContact,com.motilink.connector.IConnection,com.motilink.connector.IContactFolder) at parameter index 1