08 maja 2012

Asynchroniczne przetwarzanie w Servlet 3.0

Poniższy servlet kończy się wyjątkiem - java.lang.IllegalStateException - na linii 18, w której dostaję się do javax.servlet.AsyncContext. Dlaczego?

package pl.japila;

import java.io.IOException;

import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = "/AsyncServlet", asyncSupported = true)
public class AsyncServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        AsyncContext asyncCtx = request.getAsyncContext();
        response.getWriter().printf("<h2>AsyncContext: %s</h2>", asyncCtx);
    }

}
Niech to będzie początkiem mojego eksperymentu naukowego, którego obiektem jesteś...Ty! :-)