Play 2 - Не удается вернуть объект Json в Response

Я пытаюсь сделать RESTFull Web Service POC, используя Play 2.1.3

У меня есть следующий класс:

case class Student(id: Long,firstName: String,lastName: String) 

Теперь я хотел бы создать RESTfull URI, который получит Json serialized Student POJO и вернет то же POJO в ответ.

implicit val studentReads = Json.reads[Student]
implicit val studentWrites = Json.writes[Student]


def updateStudent = Action(parse.json){
  request=>request.body.validate[Student].map{
    case xs=>Ok(xs)}.recoverTotal{
      e => BadRequest("Detected error:"+ JsError.toFlatJson(e))
    }
  } 

Но я получаю компиляцию Error -

Cannot write an instance of entities.Student to HTTP response. Try to define a 
     Writeable[entities.Student]

Я просто предоставил Writes[A] как неявную переменную.

Что еще мне не хватает?

Ответ 1

Я думаю, проблема в том, что метод Ok() не может понять, что Student необходимо преобразовать в json, поскольку аргументы Ok() могут отличаться.

  • Вы можете вернуть Ok(Json.toJson(xs))
  • Вы можете явно указать нужный тип: Ok(xs: JsValue)

И убедитесь, что все implicits находятся в области