gpt4 book ai didi

java - 使用通配符的 Undertow 路由格式

转载 作者:行者123 更新时间:2023-12-02 12:01:32 24 4
gpt4 key购买 nike

我的要求是提供“index.html”,无论请求中设置什么路由。我已经引用了Routing template format for undertow但无济于事。这似乎对人们有用。处理程序看起来像

PathHandler path1 = Handlers.path()
.addPrefixPath("/*", new ResourceHandler(new FileResourceManager(new File(System.getProperty("user.dir")+"ed.jpg"), 100 * 1024)).setWelcomeFiles("index.html") );

并且正在添加处理程序,例如

server = Undertow
.builder()
.addHttpListener(serverConfig.getHttpPort(), serverConfig.getHost())
.addAjpListener(serverConfig.getAjpPort(), serverConfig.getHost())
.setHandler(path1)
.build();

我也尝试过使用 PathResourceManager 。那是行不通的。该处理程序能够完美匹配没有通配符的路径。只有带有通配符的情况似乎会失败。

对此的任何帮助将不胜感激。

最佳答案

您不想使用PathHandler

相反,直接从自定义处理程序中使用 ResourceManager 提供 HTML 文件,如下所示:

ResourceManager rm = new PathResourceManager(Paths.get("/path/to/your/folder"));
Resource r = rm.getResource("index.html");
Undertow.builder()
.addHttpListener(8080, "0.0.0.0")
.setHandler(Handlers.predicate(
ex -> ex.getRequestMethod().equals(Methods.GET),
ex -> r.serve(ex.getResponseSender(), ex, IoCallback.END_EXCHANGE),
ResponseCodeHandler.HANDLE_405)
).build().start();

注意1:我使用谓词对请求动词/方法添加了一个简单的检查,以仅允许 GET 请求并回退到简单的 405 响应。

注意2:您可能希望将提供 HTML 文件的处理程序分派(dispatch)给工作线程。

关于java - 使用通配符的 Undertow 路由格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47215371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com