2013-12-05 7 views
3

Я используюне может найти неявное значение для параметра ИАС: spray.httpx.marshalling.ToResponseMarshaller

val akkaV = "2.2.3" 
val sprayV = "1.2.0" 
Seq(
    "io.spray"   % "spray-can"  % sprayV, 
    "io.spray"   % "spray-routing" % sprayV, 
    "io.spray"   %% "spray-json" % "1.2.5", 
    "io.spray"   % "spray-testkit" % sprayV, 
    "com.typesafe.akka" %% "akka-actor" % akkaV, 
    "com.typesafe.akka" %% "akka-testkit" % akkaV, 

И получаю эту ошибку:

could not find implicit value for parameter marshaller: spray.httpx.marshalling.ToResponseMarshaller[List[org.bwi.models.Cluster]]

с этим кодом:

object JsonImplicits extends DefaultJsonProtocol { 
val impCluster = jsonFormat2(Cluster) 

} 

trait ToolsService extends HttpService with spray.httpx.SprayJsonSupport { 

val myRoute = { 

    import JsonImplicits._ 

    path("") { get { getFromResource("tools.html") } } ~ 
     pathPrefix("css") { get { getFromResourceDirectory("css") } } ~ 
     pathPrefix("fonts") { get { getFromResourceDirectory("fonts") } } ~ 
     pathPrefix("js") { get { getFromResourceDirectory("js") } } ~ 
     path("clusters") { 
      get { 
       complete { 
        val result: List[Cluster] = List(Cluster("1", "1 d"), Cluster("2", "2 d"), Cluster("3", "3 d")) 
        result //***** ERROR OCCURS HERE ***** 
       } 
      } 
     } 
} 

Я пробовал предложение on this question, но это не сработало, такая же ошибка.

Я не могу понять, что подразумеваемое мне нужно импортировать. Любая помощь будет оценена по достоинству.

+0

Если вы заполните запрос с помощью 'Cluster' вместо' List [Cluster] ', он скомпилируется? Является ли неявный jsonFormat для 'cluster' в' JsonImplicits'? – kong

+0

Нет, это не так. Такая же ошибка. –

+1

Вероятно, он не может найти 'JsonFormat' для' Cluster'. В приведенном выше 'impCluster' не« подразумевается », хотя это должно быть. Это ошибка копирования/вставки, или это то, что находится в вашем коде? – kong

ответ

5

Вам необходимо убедиться, что неявный JsonFormat для типа Cluster находится в области видимости, так что SprayJsonSupport знает, как сортировать этот тип. С этим вы должны автоматически получить поддержку для маршалинга List[Cluster] из форматов по умолчанию.

В публикуемом коде val impCluster = jsonFormat2(Cluster) определяет JsonFormat, но не помечен как implicit, так что не класс типы неявно разрешен. Изменение его на

implicit val impCluster = jsonFormat2(Cluster) 

должен исправить проблему.

 Смежные вопросы

  • Нет связанных вопросов^_^