使用 Undertwo 网络服务器同时提供静态页面和网络服务
Use Undertwo web server to serve both static pages and web service
我正在尝试使用 Undertow 为静态页面和 Web 服务 (RestEasy) 提供服务,但无法让它们同时工作。我看到其他人问同样的问题,例如 。必须有办法完成这项工作,对吧? WildFly 可以在同一个端口上处理两者。但是我怎么能这样做呢?谢谢!
怎么样:
DeploymentInfo servletBuilder = deployment()
.setClassLoader(App.class.getClassLoader())
.setContextPath("/api")
.setDeploymentName("test.war")
.addServlets(
servlet("MessageServlet", MessageServlet.class)
.addInitParam("message", "Hello World")
.addMapping("/*"),
servlet("MyServlet", MessageServlet.class)
.addInitParam("message", "MyServlet")
.addMapping("/myservlet"));
DeploymentManager manager = defaultContainer().addDeployment(servletBuilder);
manager.deploy();
HttpHandler servletHandler = manager.start();
Undertow.builder().addHttpListener(8080, "0.0.0.0")
.setHandler(Handlers.path()
// REST API path
.addPrefixPath("/servlet", servletHandler)
// Serve all static files from a folder
.addPrefixPath("/static", new ResourceHandler(
new PathResourceManager(Paths.get("/path/to/www/"), 100))
.setWelcomeFiles("index.html"))
).build().start();
servlet部分取自Undertow的官方示例,here。
您可以通过以下方式与 Message servlet 对话:
GET /servlet/api
POST /servlet/api/myservlet
我正在尝试使用 Undertow 为静态页面和 Web 服务 (RestEasy) 提供服务,但无法让它们同时工作。我看到其他人问同样的问题,例如
怎么样:
DeploymentInfo servletBuilder = deployment()
.setClassLoader(App.class.getClassLoader())
.setContextPath("/api")
.setDeploymentName("test.war")
.addServlets(
servlet("MessageServlet", MessageServlet.class)
.addInitParam("message", "Hello World")
.addMapping("/*"),
servlet("MyServlet", MessageServlet.class)
.addInitParam("message", "MyServlet")
.addMapping("/myservlet"));
DeploymentManager manager = defaultContainer().addDeployment(servletBuilder);
manager.deploy();
HttpHandler servletHandler = manager.start();
Undertow.builder().addHttpListener(8080, "0.0.0.0")
.setHandler(Handlers.path()
// REST API path
.addPrefixPath("/servlet", servletHandler)
// Serve all static files from a folder
.addPrefixPath("/static", new ResourceHandler(
new PathResourceManager(Paths.get("/path/to/www/"), 100))
.setWelcomeFiles("index.html"))
).build().start();
servlet部分取自Undertow的官方示例,here。 您可以通过以下方式与 Message servlet 对话:
GET /servlet/api
POST /servlet/api/myservlet