在相同类型上输入不匹配

时间:2014-11-13 11:44:09

标签: scala marshalling spray

我正在尝试使用喷涂路由发送json响应  我在调用完整的

后收到此错误
Error:(45, 29) type mismatch;
 found   : _2.Entities.EventsSearchResponse where val _2: eyein.eventful.eventful
 required: _3.Entities.EventsSearchResponse where val _3: eyein.eventful.eventful
                api.jsonize(value)
                            ^

api.jsonize只是marshal

的包装器

在原始api文件中使用它将json打印为字符串,没有任何问题。

我最感兴趣的是错误,显然有一些打字问题,但我不知道从哪里开始

这是路线

val myRoute =
  path("event" / IntNumber / IntNumber) {(from,to) =>
    get {
      respondWithMediaType(`application/json`) {
        onSuccess(api.GetEventsByDate(from.toString,to.toString)){ value =>
            complete{
              api.jsonize(value)
            }
          }
        }
      }
    }

jsonize signature

  def jsonize(eventList : Entities.EventsSearchResponse)

1 个答案:

答案 0 :(得分:0)

Scala认为内部类的类型是路径依赖的,并不总是按照您期望的方式推断路径依赖类型。尝试给它一个明确的路径依赖类型:

onSuccess(api.GetEventsByDate(...): Future[api.Entities.EventsSearchResponse]) {
  value: api.Entities.EventsSearchResponse => ...
}