Я пытаюсь переписать URL-адрес сервлета. URL-адрес правильно переписывается, но после этого контекст не совпадает. Любая идея, как заставить это работать?Jetty RewriteHandler и 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");
Так в основном /r/asdf
получает переписан /r?z=asdf
.
Однако перезаписанный /r?z=asdf
теперь не обрабатывается сервлетом.
Также, /r?z=asdf
действительно работает, если вызвано напрямую.
Я вставил полный код здесь: http://pastebin.com/Z1isNADg