2016-03-20 6 views
1

Playのウェブサイトのdocumentationに続いて、私の俳優は以下のように設定されています。俳優への設定とサービスの注入

public class SuggestionActor extends UntypedActor { 


    public static Props props = Props.create(SuggestionActor.class); 

    private DAOService service; 
    private Configuration config; 

    @Inject 
    public SuggestionActor(DAOService service, Configuration config) { 
     this.service = service; 
     this.config = config; 
    } 


    @Override 
    public void onReceive(Object msg) throws Exception { 
     if(msg instanceof SayHello) { 
      // check if msg comes 
      Logger.info(((SayHello) msg).name + config.getString("dao.mode")); 
     } 
    } 
} 

- (application.confに有効)

public class ActorProtocols { 

    public static class SayHello{ 
     public final String name; 


     public SayHello(String name) { 
      this.name = name; 
     } 
    } 
} 

MyModuleという

public class MyModule extends AbstractModule implements AkkaGuiceSupport { 

    @Override 
    protected void configure() { 
     bindActor(SuggestionActor.class, "suggestion-actor"); 
    } 
} 

マイコントローラー

@Singleton 
public class SuggestionController extends Controller { 

    private static Logger.ALogger LOGGER = Logger.of(SuggestionController.class); 

    @Inject @Named("suggestion-actor") 
    private ActorRef suggestionActor; 

    public Result suggest(String message) { 
     ask(suggestionActor, new SayHello(message), 10000); 
    } 
} 

私は私のDAOオブジェクトを注入しようと構成を経由している場合SuggestionActor、P1のコンストラクタインジェクションjava.lang.IllegalArgumentExceptionが::AYによって引き起こさ をスローしない引数のクラスactors.SuggestionActorで見つかった一致するコンストラクタ[]

アイデア?

答えて

0

Guiceを使用してSuggestionActorにコンポーネントを注入しようとしましたが、私のコントローラでは同時にPropsを使用していました。いったん私が小道具を取り除くと、すべてが正常に動作し始めました。プロンプトを使用する場合は、SO Postに従ってください。