私はGuiceとdropwizardとの統合を必要とするプロジェクトに取り組んでいます。私がそれを設計した方法は次のとおりです。Dropwizard Guice Error:コンストラクタの依存関係がありません
ApplicationClass
public class MyService extends Application<MyServiceConfig> {
public static void main(String[] args) throws Exception {
new MyService().run(args);
}
@Override
public void initialize(Bootstrap<MyServiceConfig> bootstrap) {
GuiceBundle<MyServiceConfig> guiceBundle = GuiceBundle.<MyServiceConfig>newBuilder()
.addModule(new MyServiceModule())
.setConfigClass(MyServiceConfig.class)
.enableAutoConfig(this.getClass().getPackage().getName())
.build();
bootstrap.addBundle(guiceBundle);
}
@Override
public void run(MyServiceConfig config, Environment environment) throws Exception{
}
この私はこれらが私のデータストアファイル
public interface MyDataStoreInterface {
public void method1();
}
public class MyDataStore implements MyDataStoreInterface {
public MyDataStore(Config1 config1, Config2 config2){
/*implementation*/
}
public void method1(){
/*implementation*/
}
}
そして最後に、次のです
public class MyServiceModule extends AbstractModule{
@Provides
public MyDataStoreInterface getDataStore(MyServiceConfig myServiceConfig){
return new MyDataStore(myServiceConfig.getConfig1(), myServiceConfig.getConfig2());
}
@Override
protected void configure() {
}
}
を書いたMyServiceModuleは私のリソースファイル
です私は上記のアプリケーションを実行すると、私は次のエラーを取得する:
ERROR [2016-04-27 20:34:29,669] com.sun.jersey.spi.inject.Errors: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for constructor public com.mobile.myservice.resources.MyResource(com.mobile.myservice.datastore.MyDataStoreInterface) at parameter index 0
誰かが私が間違っているのどこに私を助けることができますか?
あなたはどこにでもMyServiceConfigをバインドしました:
はこの質問と私の答えを参照してください? Guiceとの統合はどのようなものを使用していますか? – pandaadb