J'essaie de réécrire une URL pour une servlet. L'URL est réécrite correctement, mais le contexte ne correspond pas après cela. Une idée de comment faire fonctionner ça?Jetty RewriteHandler et RewriteRegexRule
RewriteHandler rewriteHandler = new RewriteHandler();
rewriteHandler.setRewriteRequestURI(true);
rewriteHandler.setRewritePathInfo(true);
rewriteHandler.setOriginalPathAttribute("requestedPath");
RewriteRegexRule rewriteRegexRule = new RewriteRegexRule();
rewriteRegexRule.setRegex("/r/([^/]*).*");
rewriteRegexRule.setReplacement("/r?z=$1");
rewriteHandler.addRule(rewriteRegexRule);
ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
Context servletContext = new Context(contextHandlerCollection, "/");
servletContext.addServlet(new ServletHolder(new RedirectServlet()), "/r");
Donc, fondamentalement /r/asdf
est réécrite à /r?z=asdf
.
Cependant, le /r?z=asdf
réécrit n'est plus traité par le servlet.
En outre, /r?z=asdf
fonctionne si appelé directement.
J'ai collé le code complet ici: http://pastebin.com/Z1isNADg