Отображение определенного сервлета в сервлет по умолчанию в Tomcat
Я пытаюсь реализовать сервлет, который получает необработанные запросы, и решает либо обработать их, либо переслать их на другой внутренний сервер. Это похоже на балансировщик нагрузки, где полученный запрос перенаправляется в один из (в моем случае 2) адресатов. Один из пунктов назначения является удаленным (на другом хосте). Кроме того, запросы могут прийти в корень (http://mycompany.com/).
Поскольку я хочу получать необработанные запросы, я реализовал свой собственный сервлет (создание подклассовHttpServlet
), и это прекрасно работает. Мой сервлет выглядит так:
public class MyProxyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
processOrForward(req, resp);
}
// also doGet(), doHead(), ...
}
Поскольку служба, которую я хочу обработать, может отправлять запросы в корень, я хотел бы сопоставить свой сервлет с сервлетом по умолчанию, тем самым получая любой запрос, который не имеет явного отображения сервлета. Предположим, мой сервлетзовут "myservlet»и бежит по сторонам другого сервлетаFoo»Ожидаю все запросы в видеhttp://mycompany.com/foo/... для доставки в foo, а все остальное (например, /, / bar / ..., / myservlet / ...) в "myservlet», Глядя на более ранние сообщения (например, отображение корняВот а такжеВотили переписывание URLВот), Я думал, что понял это, но это не работает.
Вот мойweb.xml:
ProxyServlet
com.mycompany.MyProxyServlet
1
ProxyServlet
/*
В вышеweb.xml, для URL-шаблона я пытался
"/" and "/*" and empty (i.e., ), all behave the same -->
Requests to root (/)goes to tomcat's default servlet
Requests to /myservlet/... are handled by "myservlet"
Requests to /fubar/... are always 404
Есть ли способ превратить мой сервлет по умолчанию. То есть, любой запрос, который не привязан конкретно к сервлету, поступает ко мне (даже приемлемо получать все запросы, поскольку я могу развернуть этот сервлет в своем собственном контейнере). В случае, если это имеет значение, я использую Tomcat 7.0.30 на Ubuntu 12.10.