我有一个管道:
import spray.httpx.unmarshalling._
import spray.client.pipelining._
import spray.json._
import MyJsonProtocol._ //which defines a formatter for MyCustomType
import spray.http._
import spray.httpx.SprayJsonSupport._
val pipeline = sendReceive ~> unmarshal[MyCustomType]
编译说他不能find implicit value for parameter unmarshaller: spray.httpx.unmarshalling.FromResponseUnmarshaller[MyCustomType]
我已经像喷涂文档here中的示例那样完成了。 为什么它不能解决暗示?
修改
val pipeline = sendReceive ~> unmarshal[MyCustomType]
用于匿名类的方法。我想出如果我在那个匿名类中声明我所有的jsonFomats(我的意思是驻留在MyJsonProtocol
中的东西我替换为匿名类)一切正常。
所以问题是为什么这不适用于匿名类?
答案 0 :(得分:1)
尝试指定值管道的类型:
val pipeline: HttpRequest => Future[MyCustomType] = sendReceive ~> unmarshal[MyCustomType]