2013-03-16 14 views

Odpowiedz

6

Java Servlet 3.0 Maintenance Release na stronie 34 czytamy:

Wywołanie tej metody - ServletRequest.startAsync(ServletRequest req, ServletResponse res) - zapewnia, że ​​odpowiedź nie jest zaangażowana gdy wychodzi skargi z metody usługi. Jest on zatwierdzany, gdy wywoływany jest AsyncContext.complete na zwróconym asynchronicznym tekście lub AsyncContext i nie ma żadnych detektorów powiązanych z obsługą czasu na . Licznik asynchronicznych limitów czasu nie rozpocznie się, dopóki żądanie z i skojarzona odpowiedź nie powrócą z kontenera. AsyncContext może zostać użyty do napisania odpowiedzi z wątku asynchronicznego . Może być również używany do powiadamiania, że ​​odpowiedź nie jest zamknięta i zatwierdzona.

Od the javadoc of the javax.servlet.AsyncContext interface:

W przypadku, gdy operacja asynchroniczna wygasła, pojemnik musi przebiegać przez następujące kroki:

  1. wzywać na ich metody onTimeout, wszystko AsyncListener instancje zarejestrowane w ServletRequest, w którym zainicjowano operację asynchroniczną.
  2. Jeśli żaden ze składników nasłuchujących nie wywołał metody complete() ani żadnej metody dispatch(), należy wykonać wysyłkę błędu o kodzie statusu równym do HttpServletResponse.SC_INTERNAL_SERVER_ERROR.
  3. Jeśli żadna strona dopasowanie błąd został znaleziony, czy strona błędu nie zadzwonił kompletne() lub którykolwiek z wysyłką() metody, zadzwoń do końca().”Powyżej

Ostatni wiersz jest najbardziej znaczenie - nie będzie to wezwanie do AsyncContext.complete()The javadoc says.

Kończy operację asynchroniczną, który został uruchomiony na wniosek , który został użyty do initialze ten AsyncContext, zamykając odpowiedź , który został użyty do zainicjowania tego AsyncContext .

Po zamknięciu AsyncContext, połączenia z większością metod zostaną rzucone IllegalStateException.

+0

dzięki za odpowiedź :-) – xwinus

+0

@xwinus, jeśli podoba ci się odpowiedź, zatwierdź ją. –

+0

@JacekLaskowski: +1. Myślę, że również pośrednio odpowiedziałeś na plakaty inne pytanie [tutaj] (http://stackoverflow.com/questions/15228031/java-lang-illegalstateexception-not-suspended-when-asynccontextcomplete)! – brainOverflow

Powiązane problemy