2016-10-24 5 views
0

Я пытаюсь использовать Undertow для обслуживания как статических страниц, так и веб-сервисов (RestEasy), но не мог заставить их работать одновременно. Я вижу, что другие задают те же вопросы, что и HTTP Handler and Resteasy Deployment with undertow and resteasy. Должен быть способ получить эту работу, не так ли? WildFly может работать как с одним портом. Но как я мог это сделать? Благодаря!Использование веб-сервера Undertwo для обслуживания как статических страниц, так и веб-службы

ответ

0

Как насчет:

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(); 

сервлета часть взята из официальных примеров прибойных в, here. Вы можете поговорить с сервлетов сообщение через:

GET /servlet/api

POST /servlet/api/myservlet