Typed Actors(Java)TypedActor
の例に従って、Javaでを実装しようとしています。しかし、私は苦労しています。、を追加しましたが、それだけでは不十分でした。Eclipseでエラーが発生したので、ビルドパスにも追加しました。akka-actor-1.1-M1.jar
akka-typed-actor-1.1-M1.jar
scala-library.jar
aspectwerkz-2.0.jar
aspectwerkz-core-2.0.jar
TypedActorをカスタムコンストラクターで使用しようとしています。
しかし、コンパイル時にエラーが発生します。
Exception in thread "main" java.lang.NoSuchMethodError: org.codehaus.aspectwerkz.proxy.Proxy.newInstance([Ljava/lang/Class;[Ljava/lang/Object;ZZ)Ljava/lang/Object;
at akka.actor.TypedActor$.newInstance(TypedActor.scala:596)
at akka.actor.TypedActor$.newInstance(TypedActor.scala:634)
at akka.actor.TypedActor.newInstance(TypedActor.scala)
at com.example.actor.ActorTest.main(ActorTest.java:12)
これが私のコードですBaseActor
:
import akka.actor.TypedActor;
public class BaseActor extends TypedActor implements BaseService {
private String str;
private int num;
public BaseActor(String str, int num) {
this.str = str;
this.num = num;
System.out.println("booted");
}
public void testData(String str, int num) {
System.out.println(this.str + " " + this.num);
System.out.println(str + " " + num);
}
}
私interface
のサービス:
public interface BaseService {
public void testData(String str, int num);
}
そしてテストクラス:
import akka.actor.TypedActor;
import akka.actor.TypedActorFactory;
public class ActorTest {
public static void main(String[] args) {
BaseService service = TypedActor.newInstance(BaseService.class,
new TypedActorFactory() {
public TypedActor create() {
return new BaseActor("someString", 12);
}
});
service.testData("Hello", 6);
}
}
例では、彼らは次のように書いています。
Service service = TypedActor.newInstance(classOf[Service],
new TypedActorFactory() {
public TypedActor create() {
return new ServiceWithConstructorArgsImpl("someString", 500L));
});
しかし、それはJavaではないと思いますclassOf[Service]
。Scalaのように見えます。
TypedActor
カスタムコンストラクターを使用してを実装するにはどうすればよいですか?