Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-2418

Looking up BeanManager from JNDI doesn't work in ServletRequestListener.requestInitialized()

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • 7.1.0.Beta1
    • 7.0.2.Final
    • Web
    • None
    • Compatibility/Configuration

      Looking up BeanManager from JNDI doesn't work if the lookup is done from ServletRequestListener.requestInitialized(). You can reproduce this issue by simply adding this class to CDI WAR application deployed to AS 7.0.2.Final:

      @WebListener
      @WebFilter(urlPatterns = "/*")
      public class TestListener implements ServletRequestListener, Filter {
      
          @Override
          public void init(FilterConfig config) throws ServletException {
              lookupBeanManager("Filter.init()");
          }
      
          @Override
          public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,
                  ServletException {
      
              lookupBeanManager("filter.doFilter()");
              chain.doFilter(request, response);
          }
      
          @Override
          public void destroy() {
          }
      
          @Override
          public void requestInitialized(ServletRequestEvent event) {
              lookupBeanManager("ServletRequestListener.requestInitialized()");
          }
      
          @Override
          public void requestDestroyed(ServletRequestEvent arg0) {
          }
      
          private void lookupBeanManager(String calledFrom) {
      
              try {
      
                  InitialContext ic = new InitialContext();
                  Object beanManager = ic.lookup("java:comp/BeanManager");
      
                  System.out.println(calledFrom + ": Lookup SUCCESS");
      
              } catch (NamingException e) {
                  System.out.println(calledFrom + ": Lookup FAILED");
              }
      
          }
      
      }
      

      You will see that the lookup works fine for the Filter methods initFilter and doFilter, but not for requestInitialized.

              sdouglas1@redhat.com Stuart Douglas (Inactive)
              christian@kaltepoth.de Christian Kaltepoth (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: