2017-03-22 2 views
1

Ich habe eine Anwendung, die auf einem eingebetteten Jetty-Server ausgeführt wird. Ich versuche einen Schreibvorgang hinzuzufügen, um einen RewriteHandler hinzuzufügen, um vom Stamm meiner Webanwendung (http:///www.example.com) zu (http: www.example.com/web) umzuleiten. Ich habe den RewriteHandler hinzugefügt, aber ich werde umgeleitet zu http://www.example.com/home.html (oder main.html, je nachdem, ob der Benutzer angemeldet ist oder nicht).Jetty RewriteHandler und contextHandler

Ich möchte eigentlich auf http://www.example.com/web/home.html umgeleitet werden.

ServletContextHandler servletHandler = 
      new ServletContextHandler(ServletContextHandler.SESSIONS); 
    ServletHolder jerseyServlet = servletHandler.addServlet(ServletContainer.class, "/*"); 


    String staticPath = StartServer.class.getResource("/resources/www-static/").toExternalForm(); 
    ResourceHandler resourceHandler = new ResourceHandler(); 
    resourceHandler.setBaseResource(Resource.newResource(staticPath)); 
    resourceHandler.setWelcomeFiles(new String[] { "home.html" }); 
    ContextHandler staticHandler = new ContextHandler("/web"); 
    staticHandler.setHandler(resourceHandler); 

    RewriteHandler rewriteHandler = new RewriteHandler(); 
    rewriteHandler.setRewriteRequestURI(true); 
    rewriteHandler.setRewritePathInfo(false); 
    RewritePatternRule redirect = new RewritePatternRule(); 
    redirect.setPattern("^/?$"); 
    redirect.setReplacement("/web"); 
    rewriteHandler.addRule(redirect); 
    rewriteHandler.setHandler(resourceHandler); 

    HandlerList handlers = new HandlerList(); 
    handlers.setHandlers(new Handler[] { servletHandler, staticHandler, rewriteHandler }); 

    jetty.setHandler(handlers); 

Antwort

Verwandte Themen