scala - 使用 akka-http 从 src/main/resources 返回一个文件

标签 scala akka spray akka-http

我的项目资源文件夹 src/main/resources 中有一个文件 abc.txt。 我有以下应该为文件提供服务的代码片段。

get {
    path("hello") {
      complete {
        val s = Source.file(new File("src/main/resources/abc.txt"), 1024)
        s
      }
    }

我什至尝试了以下

get {
path("hello") {
  complete {
    getFromFile("src/main/resources/abc.txt")
  }
}

在这两种情况下我都得到一个错误提示

Expression of type routing.Route doesn't conform to expected Type toResponseMarshallable

我唯一的要求是当我收到这个请求时我应该能够提供一个文件。 我用谷歌搜索了我找不到的解决方案。 注:本人是Scala/Akka初学者

最佳答案

getFromFile 是一个指令,而 complete 需要一个响应。

正确的解决方案应该是这样的:

val route: Route =
  path("hello") {
    getFromResource("abc.txt")
  }

关于scala - 使用 akka-http 从 src/main/resources 返回一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080722/

相关文章:

java - Akka 框架的最佳用例是什么

scala - Spray.io logRequestResponse 到专用日志文件

scala - 元组在 map 内解包

scala - 使用内部类作为类型参数

java - Akka 中的轻量级线程

akka - 在 Slick 事务中处理 Akka 流

log4j - akka、spray 和 log4j2 没有正确登录

testing - 我可以运行 JUnit 4 以从命令行测试 Scala 代码吗?

Scala:可以直接引用本身吗?