2016-10-24 3 views
0

J'essaie d'utiliser Undertow pour servir à la fois les pages statiques et le service Web (RestEasy), mais je n'ai pas réussi à les faire travailler en même temps. Je vois d'autres personnes qui posent les mêmes questions comme HTTP Handler and Resteasy Deployment with undertow and resteasy. Il doit y avoir un moyen d'obtenir ce travail, n'est-ce pas? WildFly peut gérer les deux sur le même port. Mais comment pourrais-je faire ça? Merci!Utiliser le serveur Web Undertwo pour servir à la fois les pages statiques et le service Web

Répondre

0

Que diriez-vous:

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

La partie servlet est empruntée des exemples officiels de Undertow, here. Vous pouvez parler à votre servlets Message via:

GET /servlet/api

POST /servlet/api/myservlet