私は次のようなコードを使用します:
ユーザーアクターは、最初に次のようなコードのどこかに作成されます。
TypedActor.get(actorSystem).typedActorOf(new TypedProps<UserActor>(IUserActor.class, new Creator<UserActor>() {
@Override
public UserActor create() throws Exception {
return new UserActor(userId);
}
}), userId);
その後、私はそのインスタンスを取得しようとしています(UntypedActorsのactorForのように):
ActorRef userActorRef = actorSystem.actorFor("akka://actors/user/" + userId));
UserActor userActor = TypedActor.get(actorSystem).typedActorOf(new TypedProps<UserActor>(UserActor.class), userActorRef);
// exception is here:
userActor.gotRequest(msg);
しかし、userActorでメソッドを呼び出すと、
java.lang.ClassCastException: $Proxy5 cannot be cast to com.lutshe.akka.actors.UserActor
at com.lutshe.akka.AkkaMessagesHandler.process(AkkaMessagesHandler.java:47)
at com.lutshe.tcp.server.TestMessageHandler.messageReceived(TestMessageHandler.java:31)
at com.lutshe.tcp.server.TestMessageHandler.messageReceived(TestMessageHandler.java:14)
at io.netty.channel.ChannelInboundMessageHandlerAdapter.inboundBufferUpdated(ChannelInboundMessageHandlerAdapter.java:69)
...
私は何が間違っているのですか?ありがとう