我的项目资源文件夹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")
}
}
在这两种情况下,我都会收到错误
路由类型的表达。路由不符合预期的类型toResponseMarshallable
我唯一的要求是,当我收到此请求时,我应该能够提供文件。 我确实谷歌寻求解决方案我无法找到任何解决方案。 注意:我是Scala / Akka初学者
答案 0 :(得分:4)
super(context, itemResource, (T[]) objects);
是指令,而getFromFile
则需要回复。
正确的解决方案应该是:
complete
答案 1 :(得分:0)
getFromFile
的使用非常接近,但它已经定义了一种HTTP方法,因此您不需要自己动手。这样的事情应该有效:
val route: Route =
path("hello") {
getFromFile("src/main/resources/abc.txt")
}
答案 2 :(得分:0)
你在这里工作两个不同的世界。使用resources
可以更轻松地获取calasspath
。
val resourceStream: InputStream = getClass.getResourceAsStream("/"src/main/resources/abc.txt")
val data: String = scala.io.Source.fromInputStream(resourceStream).getLine.mkString
data