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

Details

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

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: