我有@WebServlet("")
和@WebFilter(urlPatterns = {"", "/", "/*"}, asyncSupported = true)
但是没有为servlet调用过滤器: - (
我根据http://www.java.net/node/700651?force=613
中的说明使用@WebServlet("")
代替@WebServlet("/")
我正在使用与Java SE 7捆绑在一起的最新Java EE 6 SDK中捆绑的Glassfish版本。(我使用Jetty的最新GA切换,因为Jetty错误地实现了@WebServlet("")
)
答案 0 :(得分:2)
这是Glassfish中的一个错误,根据Glassfish论坛上的一位成员:http://www.java.net/node/700651#comment-821081解决方法是除了URL模式之外,还要按servlet名称进行过滤。这还需要为servlet命名。因此注释将是:@WebServlet(name = "foo", urlPatterns = "")
和@WebFilter(servletNames = "foo", urlPatterns = {"", "/*"})
,一旦修复了错误,您可以删除servlet的名称以及过滤器中对它的显式引用。