나는 Play 2.5.x를 사용하여 HTTP 요청을 처리하고 있습니다. 내 서버로 보낸 데이터는 JSON 형식입니다. 따라서 재생의 json 라이브러리는 import play.api.libs.json._
처럼 사용됩니다.Scala를 사용하여 Play 2.5.x에서 RabbitMQ에 유효성이 검사 된 개체를 보내는 방법은 무엇입니까?
case class SMSItem(phone: String, content: String)
object SMSItemObj {
implicit val smsItemReads: Reads[SMSItem] = (
(JsPath \ "phone").read[String] and
(JsPath \ "content").read[String]
)(SMSItem.apply _)
def readItem(json: JsValue) = json.validate[SMSItem]
def readItems(json: JsValue) = json.validate[List[SMSItem]]
}
그러나, items.getBytes
컴파일 할 수없는, 스칼라 목록을 변환 할 수 없습니다 보인다 다음과 같이
def sendItems = Action(BodyParsers.parse.json) { req =>
val result = SMSItemObj.readItems(req.body)
result.fold(
errors => {
BadRequest(Json.obj("status" -> "KO", "message" -> JsError.toJson(errors)))
},
items => {
channel.basicPublish("", QUEUE_NAME, null, items.getBytes)
Ok(Json.obj("status" -> "OK"))
}
)
}
SMSItemObj
가 정의 다음과 같이 요청을 처리 할 수
내 행동입니다 java 바이트.
나는 amqp-client 3.6.1
을 사용하고 있습니다.
"com.rabbitmq" % "amqp-client" % "3.6.1"