使用Akka-http Java加载静态html文件

问题描述 投票:1回答:1

我一直在努力从一个简单的aka-http Java服务器加载静态文件。我尝试了很多选项,但我总是得到以下错误:

[ERROR] [09/07/2018 11:52:06.258] [AkkaRestApiApp-akka.actor.default-dispatcher-4] [akka.actor.ActorSystemImpl(AkkaRestApiApp)] Error during processing of request: 'java.lang.NullPointerException (No error message supplied)'. Completing with 500 Internal Server Error response. To change default exception handling behavior, provide a custom ExceptionHandler.
java.lang.NullPointerException
at akka.http.scaladsl.server.directives.FileAndResourceDirectives.$anonfun$getFromResource$1(FileAndResourceDirectives.scala:106)
...

以下是我尝试的各种路线的两个示例:

return route(path("docs", () ->
        getFromResource("resources/index.html")
      ));

return pathPrefix("docs", () ->
    route(
        pathEnd(() -> getFromResource("resources/index.html"))
));

以下行正确打印文件的路径:

try {
       System.out.println(MyDocService.class.getClassLoader().getResource("resources/index.html").toURI());
    } catch (URISyntaxException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

我假设我传递给getFromResource方法的路径应该是相同的。由于绝大多数akka-http google搜索返回Scala示例,我确信我只是在编写Java版本时犯了一些愚蠢的错误。我发现一个旧的StackOverflow帖子关于在路径包含空格时加载静态资源的问题,所以我确保在我的服务路径中没有空格。提前感谢任何指针。

java akka-http
1个回答
0
投票

我能够使用getFromFile而不是getFromResource来实现这一点。目前还不清楚为什么getFromResource不起作用,但我能够解决问题。

© www.soinside.com 2019 - 2024. All rights reserved.