如何解决Undertow PrefixPath和欢迎文件
有人可以告诉我为什么使用以下代码:
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文件中的类路径中,一切正常。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。