IllegalStateException: Não suportado em AsyncContext.startAsync (req, res)

Eu criei um servlet 3.0 para explorar o processamento de solicitações assíncronas:

@WebServlet(name="MyTest", urlPatterns={"/MyTest"}, asyncSupported=true) public class MyTest extends HttpServlet { @Override public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { AsyncContext tmp = req.startAsync(req, res); ... } } 

mas recebo uma IllegalStateException quando .startAsync(...) é chamado. Eu sei que o Javadoc menciona essa exceção, mas eu habilitei explicitamente async (cf anotação WebServlet ). Eu estou usando o Tomcat 7.0.11.0 entregue com o NetBeans.

Eu poderia confirmar que req.isAsyncSupported() está retornando false. O que estou fazendo de errado? O que mais preciso fazer para habilitar o processamento asynchronous?

EDITAR:

Eu tentei implementar o seguinte exemplo e recebi o mesmo problema.

Eu verifiquei o código do Tomcat e vi que a variável asyncSupported precisa estar explicitamente definida como true. É por isso que você está recebendo req.isAsyncSupported() == false .

Você pode tentar definir o atributo async no object HttpServletRequest como true por um dos methods a seguir.

 req.setAttribute("org.apache.catalina.ASYNC_SUPPORTED", true); 

ou

 ((org.apache.catalina.connector.Request)req).setAsyncSupported(true); 

Espero que ajude.

Por favor, verifique se você tem algum filtro de solicitação que não está habilitado para suportar async. Você pode remover o filtro (temporariamente) ou marcá-lo para suportar async.

    Intereting Posts