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 находятся в области