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