我正在尝试使用Play 2.1.3进行一些RESTFull Web服务POC
我有以下课程:
case class Student(id: Long,firstName: String,lastName: String)
现在我想创建RESTfull URI,它将获得Json序列化学生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))
}
}
但我正在编译错误 -
Cannot write an instance of entities.Student to HTTP response. Try to define a
Writeable[entities.Student]
我刚刚提供了Writes[A]
作为隐式变量。
我还缺少什么?
答案 0 :(得分:28)
我认为问题是Ok()方法无法弄清Student
需要转换为json,因为Ok()的参数可能会有所不同。
Ok(Json.toJson(xs))
Ok(xs: JsValue)
确保所有含义都在范围内