スプレー 1.2 に更新した後、1.1 で完全に動作する JSON-Marshallers に関して問題が発生しました。HttpService 内で次のことを行う
trait TestHttpService extends HttpService with SprayJsonSupport with DefaultJsonProtocol{ self : ActorLogging =>
case class Test(hallo: String, test: String)
implicit val storyJsonFormat = jsonFormat2(Test.apply)
def test(implicit m : Marshaller[Future[Test]]) = 17
def hallo = test
}
次のエラーが発生します。
could not find implicit value for parameter marshaller:
spray.httpx.marshalling.Marshaller[scala.concurrent.Future[amanuensis.story.Story]]
未来を削除すると、すべてうまくいきます:
trait TestHttpService extends HttpService with SprayJsonSupport with DefaultJsonProtocol { self : ActorLogging =>
case class Test(hallo: String, test: String)
implicit val storyJsonFormat = jsonFormat2(Test.apply)
def test(implicit m : Marshaller[Test]) = 17
def hallo = test
}
そのため、Story 自体のマーシャラーは暗黙のスコープにあるようです。以前は先物をマーシャリングできるようにするために他に何もする必要がなかったので、今は混乱しています。
ここで何が間違っているのか、ヒントをいただければ幸いです...