繁体   English   中英

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

[英]return a file from src/main/resources using 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")
  }
}

在这两种情况下,我都会收到错误消息

类型routing.Route的表达式不符合预期的Type toResponseMarshallable

我唯一的要求是,当我收到此请求时,我应该能够提供文件。 我做谷歌解决方案我找不到任何。 注意:我是Scala / Akka初学者

getFromFile是一个指令,而complete预期响应。

正确的解决方案应该是:

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

getFromFile的使用非常接近,但它已经定义了一个HTTP方法,所以你不需要自己动手。 这样的事情应该有效:

val route: Route =
  path("hello") {
    getFromFile("src/main/resources/abc.txt")
  }

你在这里工作两个不同的世界。 使用calasspath更容易获得resources

    val resourceStream: InputStream = getClass.getResourceAsStream("/"src/main/resources/abc.txt")
    val data: String = scala.io.Source.fromInputStream(resourceStream).getLine.mkString
    data

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM