Undertow PrefixPath 和欢迎文件

Undertow PrefixPath and the Welcome File

有人可以告诉我为什么使用以下代码:

Undertow server = Undertow.builder()
            .addHttpListener(8080, "0.0.0.0")
            .setHandler(path().addPrefixPath("/",
                    resource(new ClassPathResourceManager(
                                HelloWorldServer.class.getClassLoader()))
                            .addWelcomeFiles("index.html")))
            .build();
 server.start(); 

然后在转到 URL 时会给你一个空白页 http://localhost:8080

但对于 URL http://localhost:8080/index.html

可以正常工作

我的印象是“/”的 PrefixPath 应该将所有默认请求重定向到您定义的欢迎文件,但事实并非如此。注意:index.html 文件嵌入在根路径上的 jar 文件中。验证它在那里并且可以从 ClassPathResourceManager 中提取它。

我也曾尝试定义除“/”之外的其他 PrefixPath,但默认情况下永远不会触发欢迎文件。我总是必须在 URL 中定义它。非常感谢对我的理解提供的帮助!

原来是我的类路径不对。错误的假设是我的 jar 文件的位置自动添加到我的类路径中,而实际上 NetBeans 仅使用特定的 jar 文件而不是位置构建默认类路径。解决方案是将我的 html 文件的位置添加到我的 build.gradle 文件的类路径中,一切都很好。