喷射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 。 在控制台上没有暗示什么问题是什么?