我有一个Akka HTTP服务器,其路由定义如下:
case class FooResults(results: Seq[Tuple2[String, Tuple2[Double, Double]]])
object MainApp extends App with JsonSupport {
...
lazy val routes: Route =
pathPrefix("foo") {
pathEnd {
get {
entity(as[String]) { str =>
val results =
(fooActor ? Foo(str)).mapTo[FooResults]
complete(results)
}
}
}
}
...
在该类中,我注入了隐式json支持:
trait JsonSupport extends SprayJsonSupport {
import DefaultJsonProtocol._
implicit val userFormat = jsonFormat1(FooResults)
}
sbt仍然以
报告Type mismatch - FooResults with ToResponseMashallable
有人遇到类似的问题吗?谢谢!
答案 0 :(得分:0)
我想通了自己。这是因为我的项目中有两个SprayJsonSupport类:
import spray.httpx.SprayJsonSupport
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
现在,显然后者是正确的。自从Scala和Akka都在快速发展以来,就一直在猜测,有时它会与名称空间和类混淆。