喷射xls文件到客户端
我正在开发一个喷雾restapi,我需要从我的网站客户端下载一个带有报告的excel文件。
Excel生成器方法已经准备就绪,但是喷雾的“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) }
OUTPUT:
FILE: /tmp/flujocaja-reports-5627299217173924055/reporte-anual.xls HTTP/1.1 500 Internal Server Error
你的代码的主要问题是, getFromFile(path)
不会对请求做任何事情,而是返回一个新的函数RequestContext => Unit
,它永远不会被调用。 一种解决scheme可能是用getFromFile(path)(ctx)
replace该行。
然而,在继续使用内部路线之前,如何处理asynchronous工作还有更好的方法:使用期货和FutureDirectives之一 。 下面是一个大致适用于您的用例的示例:
onSuccess((flujoActor ? GetAnualReport(year, generateExcel)).mapTo[ReporteResponse]) { response => getFromResource(response.path) }
这就是说,我不知道为什么你的情况下得到500 Internal Server Error
。 在控制台上没有暗示什么问题是什么?