Я уже сталкивался с этой проблемой уже пару раз, и мне интересно, что такое Лифт-способ для выполнения такого действия. Конечно, я мог бы делать свою собственную обработку ошибок и т.д., но в основном мне интересно, как я могу превратить Box [Elem] в LiftResponse. В идеале, конечно, XmlResponse.
Сценарий состоит в том, что я использую RestHelper для API, и у меня есть функция, которая возвращает мне Box [Elem]. Я хотел бы использовать асинхронную поддержку.
Ошибка, которую я получаю, состоит в том, что Box [Elem] (или Box [NodeSeq], Box [Node]) не может быть преобразован в LiftResponse. Однако тот же код без использования RestContinuation работает.
Примечание: я не хочу, чтобы Lift выполнял логику обработки шаблонов. Просто выведите XML так же, как это происходит без использования RestContinuation.
val userId = S.param("userId") map { _.toInt }
RestContinuation.async {
reply => {
reply(
for {
user <- userRepo.select(userId) ?~ "No such user." ~> 404
} yield {
<user>
<name>{user.name}</name>
</user>
}
)
}
}