类型不匹配,预期:(​​HNil)=> routing.Route,actual:StandardRoute

时间:2017-05-02 12:47:03

标签: scala routing

我是Scala的新手并尝试使用SBT编写一个Spray API示例进行练习,但遇到问题。

Issue with routing API ** Type Mismatch

 import spray.routing.SimpleRoutingApp 
 import akka.actor.ActorSystem 
 object ScalaBay extends App with SimpleRoutingApp { 
    implicit val actorSystem = ActorSystem() 
    startServer(interface = "localhost", port = 8080) { 
         get { path("hello") { 
            complete { "welcome" } 
               } 
         } 
    } 
 } 
  1. 我使用spray和Akka创建了一个路由API。
  2. 一旦服务器以localhost地址启动,一旦获得path =“hello”,它应该以一些成功消息完成。
  3. 但是得到错误“类型不匹配,预期:(​​HNil)=> routing.Route,actual:StandardRoute”在路由到路径之后。
  4. 请帮我解决问题。

1 个答案:

答案 0 :(得分:0)

我认为你需要使用lambda语法,因为输入是一个函数,而不是一个值,就像错误所暗示的那样。喷涂路由中的HNil表示您没有定义要从路径中提取的参数或实体,因此定义的函数是从HNil定义的,空HList类型,但它是表单HNil => routing.Route,因此您需要在某处使用_ => route

 import spray.routing.SimpleRoutingApp 
 import akka.actor.ActorSystem 
 object ScalaBay extends App with SimpleRoutingApp { 
    implicit val actorSystem = ActorSystem() 
    startServer(interface = "localhost", port = 8080) { 
         get { path("hello") { _ => 
            complete("welcome")
           } 
         } 
    } 
 }