1

私はパイプラインを持っています:

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]

私はここでスプレードキュメントのサンプルのようにそれをやった. 暗黙を解決できないのはなぜですか?

EDIT val pipeline = sendReceive ~> unmarshal[MyCustomType]は、匿名クラスのメソッドから使​​用されます。その匿名クラスですべてのjsonFomatsを宣言すると(つまり、匿名クラスMyJsonProtocolに置き換えるものを意味します)、すべて正常に機能することがわかりました。

質問は、これが匿名クラスで機能しない理由です。

4

1 に答える 1

1

パイプラインのタイプを指定してみてください:

val pipeline: HttpRequest => Future[MyCustomType] = sendReceive ~> unmarshal[MyCustomType]
于 2015-06-22T23:03:16.320 に答える