Не удается отфильтровать запросы корневого сервлета контекста - PullRequest
2 голосов
/ 05 января 2012

У меня есть @WebServlet("") и @WebFilter(urlPatterns = {"", "/", "/*"}, asyncSupported = true)

Но фильтр не вызывается для сервлета: - (

Я использую @WebServlet("") вместо @WebServlet("/")на основе инструкций: http://www.java.net/node/700651?force=613

Я использую версию Glassfish, входящую в комплект последней версии Java EE 6 SDK, поставляемой в комплекте с Java SE 7. (Я перешел с использования последней версии GA Jetty, потому что Jetty неправильно реализует @WebServlet(""))

1 Ответ

2 голосов
/ 05 января 2012

Это ошибка в Glassfish, и, по словам доброго члена форума Glassfish: http://www.java.net/node/700651#comment-821081 Обходной путь - фильтровать по имени сервлета в дополнение к шаблонам URL.Это также требует присвоения имени сервлету.Таким образом, аннотации будут: @WebServlet(name = "foo", urlPatterns = "") и @WebFilter(servletNames = "foo", urlPatterns = {"", "/*"}), и как только ошибка будет устранена, вы можете удалить имя сервлета и явную ссылку на него в фильтре.

...