java.lang.ClassCastException: 无法将 akka.actor.Status$Success$ 转换为 akka.actor.Status$Success
java.lang.ClassCastException: Cannot cast akka.actor.Status$Success$ to akka.actor.Status$Success
我遇到了一个奇怪的异常
java.lang.ClassCastException: Cannot cast akka.actor.Status$Success$ to akka.actor.Status$Success
at java.lang.Class.cast(Class.java:3094) ~[na:1.7.0_45]
at scala.concurrent.Future$$anonfun$mapTo.apply(Future.scala:405) ~[scala-library.jar:na]
at scala.util.Success$$anonfun$map.apply(Try.scala:206) ~[scala-library.jar:na]
at scala.util.Try$.apply(Try.scala:161) ~[scala-library.jar:na]
at scala.util.Success.map(Try.scala:206) ~[scala-library.jar:na]
问题出在尾随的 $ - 类似于内部 class 左右 ..
我的代码如下:
post {
authenticate(BasicAuth(pifUserPasswordAuthenticator _, realm = "bd pif import api")) {
user =>
entity(as[Array[Byte]]) { e =>
val resp = pifImportService.ask(PifTransactions("storeId","dob",e)).mapTo[akka.actor.Status.Success]
complete {
resp
}
}
}
}
因为我的演员回复如下:
Try(kafkaProducer.send(payload)) match {
case Success(_) =>
log.debug(s"$storeId - $dob - sending payload sucessfully sended to kafka")
sender() ! akka.actor.Status.Success
case Failure(throwable) =>
log.debug(s"$storeId - $dob - sending payload attempt failed $throwable")
sender() ! akka.actor.Status.Failure(throwable)
}
我是不是漏掉了什么技巧或者我在这里用错了名字?
谢谢
sender() ! akka.actor.Status.Success
akka.actor.status.Success
是一种情况 class 需要一个参数。看起来你没有用 class 实例回复,而是用部分应用的 Success.apply(_) 函数,我相信这不是你计划做的:
case Success(_) =>
sender() ! akka.actor.Status.Success(storeId)
我遇到了一个奇怪的异常
java.lang.ClassCastException: Cannot cast akka.actor.Status$Success$ to akka.actor.Status$Success
at java.lang.Class.cast(Class.java:3094) ~[na:1.7.0_45]
at scala.concurrent.Future$$anonfun$mapTo.apply(Future.scala:405) ~[scala-library.jar:na]
at scala.util.Success$$anonfun$map.apply(Try.scala:206) ~[scala-library.jar:na]
at scala.util.Try$.apply(Try.scala:161) ~[scala-library.jar:na]
at scala.util.Success.map(Try.scala:206) ~[scala-library.jar:na]
问题出在尾随的 $ - 类似于内部 class 左右 ..
我的代码如下:
post {
authenticate(BasicAuth(pifUserPasswordAuthenticator _, realm = "bd pif import api")) {
user =>
entity(as[Array[Byte]]) { e =>
val resp = pifImportService.ask(PifTransactions("storeId","dob",e)).mapTo[akka.actor.Status.Success]
complete {
resp
}
}
}
}
因为我的演员回复如下:
Try(kafkaProducer.send(payload)) match {
case Success(_) =>
log.debug(s"$storeId - $dob - sending payload sucessfully sended to kafka")
sender() ! akka.actor.Status.Success
case Failure(throwable) =>
log.debug(s"$storeId - $dob - sending payload attempt failed $throwable")
sender() ! akka.actor.Status.Failure(throwable)
}
我是不是漏掉了什么技巧或者我在这里用错了名字?
谢谢
sender() ! akka.actor.Status.Success
akka.actor.status.Success
是一种情况 class 需要一个参数。看起来你没有用 class 实例回复,而是用部分应用的 Success.apply(_) 函数,我相信这不是你计划做的:
case Success(_) =>
sender() ! akka.actor.Status.Success(storeId)