我正在开发一个带喷雾的休息api我需要从我的网络客户端下载带有报告的excel文件。
excel-generator方法已经准备就绪,但是喷射了#f; getFromFile(fileFullPath)"得到"内部服务器错误"
有什么想法吗?
这是我的喷码:
(ctx: RequestContext) => {
val actor = actorRefFactory.actorOf(Props(new Actor {
def receive = {
case GetAnualReport(year, generateExcel) =>
val flujoActor = context.actorOf(Props[FlujoActor])
flujoActor ! GetAnualReport(year, generateExcel)
case ReporteResponse(path) =>
println("FILE: "+path)
getFromFile(path)
}
}))
actor ! GetAnualReport(year, true)
}
输出:
FILE: /tmp/flujocaja-reports-5627299217173924055/reporte-anual.xls
HTTP/1.1 500 Internal Server Error
答案 0 :(得分:2)
您的代码的主要问题是getFromFile(path)
不会对请求执行任何操作,而是返回一个永远不会被调用的新函数RequestContext => Unit
。一种解决方案可能是用getFromFile(path)(ctx)
替换该行。
但是,在继续使用内部路线之前,如何处理异步工作有更好的方法:使用期货和FutureDirectives之一。这是一个大致适合您的用例的示例:
onSuccess((flujoActor ? GetAnualReport(year, generateExcel)).mapTo[ReporteResponse]) { response =>
getFromResource(response.path)
}
那就是说,我不确定你为什么会在你的场景中得到500 Internal Server Error
。控制台上没有任何内容暗示问题是什么?