title: Dispatch request to an Async Servlet from managed bean generate exception
body: <p>when a button click, I need to have stuff running in my background, so I have a async Servlet. From my managed bean, if I do redirect, it works great (meaning that it execute my <code>run()</code> method inside my class that <code>extends Runnable</code> correctly). Like this</p>
  
  <pre><code>String url = externalContext.getRequestContextPath() + "/ReportExecutionServlet";
  externalContext.redirect(url);
  </code></pre>
  
  <p>But if I switch to dispatch, like this</p>
  
  <pre><code>externalContext.redirect("/ReportExecutionServlet");
  </code></pre>
  
  <p>it fail when I try to obtain the <code>AsyncContext</code></p>
  
  <pre><code>AsyncContext aCtx = request.startAsync(request, response);
  </code></pre>
  
  <p><strong>The error is below</strong></p>
  
  <pre><code>Caused By: java.lang.IllegalStateException: The async-support is disabled on this request: weblogic.servlet.internal.ServletRequestImpl
  </code></pre>
  
  <p>Any idea how to fix this please?</p>
  
  <p>NOTE: This is how to execute my async servlet, just in case:</p>
  
  <pre><code>    AsyncContext aCtx = request.startAsync(request, response);            
      //delegate long running process to an "async" thread
      aCtx.addListener(new AsyncListener() {
  
          @Override
          public void onComplete(AsyncEvent event) throws IOException {
              logger.log(Level.INFO, "ReportExecutionServlet handle async request - onComplete");
          }
  
          @Override
          public void onTimeout(AsyncEvent event) throws IOException {
              logger.log(Level.WARNING, "ReportExecutionServlet handle async request - onTimeout");
          }
  
          @Override
          public void onError(AsyncEvent event) throws IOException {
              logger.log(Level.SEVERE, "ReportExecutionServlet handle async request - onError");
          }
  
          @Override
          public void onStartAsync(AsyncEvent event) throws IOException {
              logger.log(Level.INFO, "ReportExecutionServlet handle async request - onStartAsync");
          }
      });
      // Start another service
      ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);            
      executor.execute(new AsyncRequestReportProcessor(aCtx));
  </code></pre>