我们有一个@WebServlet,它带有一个自定义拦截器注释,如下所示:
@WebServlet("/path")
@CustomInterceptor
public class InitialHtmlServlet extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
}
}
在/ WEB-INF的beans.xml中有CustomInterceptor,而拦截器在其他CDI组件中有效.但是,在此servlet中,我们无法使其正常工作.
我们正在运行最新的JBoss EAP,它应该与JBoss 7.1.1有点相似.为了使拦截器能够捕获servlet上的调用,我们应该做些不同的事情吗?或者根本不可能吗?
解决方法:
经过一番挖掘之后,我还发现它有些令人困惑,尽管Servlet被称为“ bean”是一个很好的候选者,但它不受拦截器机制的限制.
看来JEE6的各个部分可能会或可能不会随意支持拦截器:).找到了一些讨论here.