return 来自 src/main/resources 使用 akka-http 的文件
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")
}
}
在这两种情况下我都收到一条错误消息
Expression of type routing.Route doesn't conform to expected Type toResponseMarshallable
我唯一的要求是,当我收到此请求时,我应该能够提供文件。
我做了 google 的解决方案,但我找不到任何解决方案。
注意:我是 Scala/Akka 初学者
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
getFromFile
是指令,而 complete
需要响应。
正确的解决方案应该是这样的:
val route: Route =
path("hello") {
getFromResource("abc.txt")
}
我的项目资源文件夹 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
我唯一的要求是,当我收到此请求时,我应该能够提供文件。 我做了 google 的解决方案,但我找不到任何解决方案。 注意:我是 Scala/Akka 初学者
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
getFromFile
是指令,而 complete
需要响应。
正确的解决方案应该是这样的:
val route: Route =
path("hello") {
getFromResource("abc.txt")
}