2012-05-24 2 views
1

타입이 지정되지 않은 액터 팩토리로 액터를 만들려고하는데 컴파일이 제대로됩니다. 그러나 응용 프로그램을 실행하는 동안 다음 오류가 발생합니다. 구성에서 무엇이든 빠져 있습니까?akka java api의 UnTypedActorFactory를 사용하여 액터를 만들 수 없습니다.

자바 코드 : akka.actor.ActorInitializationException :에 의한

: 런타임 동안

MyActor myactor = new MyActor(); //MyActor extends UnTypedActor 
ActorSystem system = ActorSystem.create("mynamespace"); 
ActorRef actor = system.actorOf(new Props(new UntypedActorFactory() { 
     public UntypedActor create() { 
      return myactor; 
     } 
    })); 

오류 명시 적를 사용하여 [com.practice.MyActor]의 인스턴스를 를 만들 수 없습니다 생성자 (신규) 팩토리 메서드 중 하나를 사용하여 새 액터를 만들어야합니다. (액터 내에서 감독 된 하위 액터를 만들려면) 또는 ' 액터 = system.actorOf (Props (new MyActor (..))'를 사용하십시오.)) '(당신이 ActorSystem 외부 MyActor의 인스턴스를 생성되기 때문이다 그)

답변

3

ActorSystem에서 최고 수준의 배우를 만들 수 있습니다. 팩토리 안에 액터를 생성하십시오 (즉, ;-) 인 것입니다) 괜찮을 것입니다.

ActorSystem system = ActorSystem.create("mynamespace"); 
ActorRef actor = system.actorOf(new Props(new UntypedActorFactory() { 
    public UntypedActor create() { 
    return new MyActor(); 
    } 
})); 

기본 생성자가 있으므로이 경우 팩토리가 필요하지 않습니다. 클래스를 매개 변수로 Props에 전달하십시오.

system.actorOf(new Props(MyActor.class)); 
+0

감사합니다. Dexrin.It worked. 새로운 MyActor()에 대한 참조를 확보해야하고 create() 메소드 내에서 참조를 초기화하고 있습니다. – vijay

관련 문제