如何使用scala喷雾分离?

时间:2014-01-05 18:01:16

标签: scala akka spray

我正在尝试使用喷雾分离如下:

path("") {
  get {
    detach {
      respondWithMediaType(`text/html`) { // XML is marshalled to `text/xml` by default, so we simply override here
        complete {
          <html>
            <body>
              <h1>Say hello to <i>spray-routing</i> on <i>Jetty</i>!</h1>
            </body>
          </html>
        }

      }
    }
  }
}

但我得到以下编译错误:

  

类型不匹配;发现:spray.routing.RequestContext =&gt;单元   必需:spray.routing.directives.DetachMagnet             respondWithMediaType(text/html){//默认情况下,XML被编组到text/xml,所以我们只是在这里覆盖                                               ^

我看了看:https://github.com/spray/spray/wiki/Detach我仍然不知道我做错了什么......

1 个答案:

答案 0 :(得分:3)

您正在查看已弃用的文档。如果您想阅读当前文档,您必须查看spray.io网站。

关于您的问题,当前文档为detach指令指定了不同的签名 - see here

def detach()(implicit ec: ExecutionContext): Directive0
def detach()(implicit refFactory: ActorRefFactory): Directive0
def detach(ec: ExecutionContext): Directive0

当你正在隐式传递你的ExecutionContext时,我猜你必须写下括号:

detach() {
  respondWithMediaType(`text/html`) { // XML is marshalled to `text/xml` by default, so we simply override here
    complete { ...