Spray.io案例类提取错误

时间:2014-04-10 11:11:39

标签: scala spray

我正在学习spray.io,我遇到了问题。我正在尝试测试几个GET参数的案例类提取。我的代码受到示例from the documentation page的启发:

package com.example

import akka.actor.Actor
import spray.routing._
import spray.http._
import MediaTypes._

class ServiceActor extends Actor
with ServiceHello {
    def actorRefFactory = context
    def receive = runRoute(testRoute)

trait ServiceHello extends HttpService with Controls {

case class Color(keyword: String, sort_order: Int, sort_key: String)

val route =
    path("test") {
        parameters('keyword.as[String], 'sort_order.as[Int], 'sort_key.as[String]).as(Color) { color =>
            handleTestRoute(color) // route working with the Color instance
        }
    }
}

这段代码应该没问题,但是当我尝试运行它时,我遇到了以下错误:

无法解析符号(在“as(Color)”之上)

缺少参数类型:颜色(在“{color =>”之上)

我理解这些错误,但我不明白他们为什么来......

我正在运行Scala 2.10.3

我做错了吗?

1 个答案:

答案 0 :(得分:0)

这对我有用(scala 2.10.4,喷雾1.3.1):

import akka.actor.Actor
import spray.routing._
import spray.http._
import MediaTypes._

class ServiceActor extends Actor with ServiceHello {
  def actorRefFactory = context

  def receive = runRoute(testRoute)
}

trait ServiceHello extends HttpService {

  case class Color(keyword: String, sort_order: Int, sort_key: String)

  val testRoute =
    path("test") {
      parameters('keyword.as[String], 'sort_order.as[Int], 'sort_key.as[String]).as(Color) { color =>
        //handleTestRoute(color) // route working with the Color instance
        complete {
          <h1>test route</h1>
        } 
      }
    }
}

不知道Controls是什么,所以我只是评论了它。