我想通过使用类名创建一个Akka actor,如图所示.我已经尝试过system.actorOf(new Props(theProcessor.getClass),name ="Test")的许多变体,但我无法让它工作.从类加载器创建Actor的任何想法
package com.test
import akka.actor.{Props, Actor, ActorRef, ActorSystem}
object Main {
def main(args: Array[String]) {
ActorFromString("Test")
}
}
object ActorFromString {
implicit val system = ActorSystem("Test")
def apply(name: String): ActorRef = {
val className = "com.test." + name + "Processor"
val theProcessor: Actor = Class.forName(className).newInstance().asInstanceOf[Actor]
system.actorOf(new Props(theProcessor.getClass), name = "Test")
}
}
class TestProcessor extends Actor {
def receive = {
case data => println("processing data")
}
}
Exception in thread "main" akka.actor.ActorInitializationException:
You cannot create an …Run Code Online (Sandbox Code Playgroud)