+ 1, хороший вопрос
У вас есть доступ к сервлет-запросу через ключевое слово request в маршруте Scalatra, поэтому getInputStream и getContentLength предоставляют доступ, если само тело сообщения является строкой xml;т. е. клиент не передает XML, сохраненный в именованном поле, как часть сообщения формы.Если последнее, то ниже следует сделать трюк:
post("/foo" && request.getHeader("Accept-Encoding") contains "application/xml") {
val xml = XML.fromString(params("xml-param-field-name"))
}
Если вы хотите использовать приведенный выше синтаксический анализ строки, см. Интеграция Anti-XML в Scalatra Book