1
У меня есть следующий тест:не соответствующий конструктор не нашел на классе аргументов []
it should "ask yarn about the running jobs" in new TestScope {
val testSender: TestProbe = TestProbe()
val testReceiver: TestProbe = TestProbe()
val yarnActorRef = system.actorOf(YarnActor.props(testReceiver.ref))
testSender.send(yarnActorRef, UpdateListOfJobs(Instant.now()))
testReceiver.expectMsg(YarnJobStatus("Not running"))
}
Для этого актера:
object YarnActor {
trait Message
case class UpdateListOfJobs(timeStamp: Instant) extends Message
def props(stateActorRef: ActorRef) = Props(new YarnActor(stateActorRef))
}
class YarnActor(stateActorRef: ActorRef) extends Actor with ActorLogging {
override def receive: Receive = {
case UpdateListOfJobs(timeStamp) => {
//check if the job is still running
val address = url("someUrlAddress")
val status: Future[String] = Await.ready(Http(address OK as.String), 1 second)
status onComplete {
case Success(message) => stateActorRef ! YarnJobStatus(message)
case Failure(_) => stateActorRef ! YarnJobStatus("Not running")
}
}
}
}
я получаю:
[info] - should ask yarn about the running jobs *** FAILED ***
[info] java.lang.IllegalArgumentException: no matching constructor found on class myPackage.YarnActor for arguments []
Почему появляется эта ошибка? В сопутствующем объекте я строю свой актер с 1 параметром (который должен быть всем, что ему нужно).
, которые HTTP-клиент вы используете? –
'dispatch' http://dispatch.databinder.net/Dispatch.html – octavian