0 Replies Latest reply on Dec 30, 2011 12:41 PM by atijms

    No injection in AsyncListener in AS 7.1

    atijms

      Using JBoss AS 7.1CRb I have defined the following Servlet AsyncListener:

       

      @ManagedBean
      public class AsyncServletListener implements AsyncListener {
          
          @Inject
          private AsyncBean asyncBean; 
          
          @Override
          public void onStartAsync(AsyncEvent event) throws IOException {
              System.out.println("onStartAsync");
          }
          
          @Override
          public void onComplete(AsyncEvent event) throws IOException {
              System.out.println("onComplete");
          }
      
          @Override
          public void onError(AsyncEvent event) throws IOException {
              System.out.println("onError");
          }
      
          @Override
          public void onTimeout(AsyncEvent event) throws IOException {
              System.out.println("onTimeout");
          }
      }
      
      

       

      I registered this listener on an AsyncContext as follows:

       

      AsyncContext asyncContext = request.startAsync();
      asyncContext.addListener(asyncContext.createListener(AsyncServletListener.class));
      

       

      The listener is called correctly, but there's no injection happening. Everything is inside a single war and the mandatory empty beans.xml has been created. JBoss AS is indeed starting up CDI ("Starting weld service" appears in the logs).

       

      If I run the same code in GlassFish, injection does happen.