2013-03-16 11 views

cevap

6

Java Servlet 3.0 Bakım Sürümü okur:

bu yöntemi çağrısı - ServletRequest.startAsync(ServletRequest req, ServletResponse res) - cevap işlememiş olmasını sağlar zaman hizmet yönteminin dışına uygulama çıktığı. Geri döndürülen AsyncContext veya AsyncContext zaman aşımına AsyncContext.complete çağrılır ve zaman aşımı işlemek için hiçbir dinleyici vardır hiçbir taahhüt vardır. Zaman uyumsuzluğu için zamanlayıcılar, isteğine kadar başlamaz ve ilgili yanıt kaptan döndürülür. AsyncContext, async iş parçacığının yanıtına yazmak için kullanılabilir. Ayrıca, yanıtın kapalı ve işlenmiş olduğunu bildirmek için de kullanılabilir.

the javadoc of the javax.servlet.AsyncContext interface Gönderen:

halinde uyumsuz bir işlem zaman aşımına ettiğini, konteyner bu adımlarda çalıştırmalısınız:

  1. çağırır, onların onTimeout yöntemine, bütün AsyncListener Asenkron işlemin başlatıldığı ServletRequest ile kaydedilmiş örnekler.
  2. Dinleyicilerden hiçbiri complete() veya irsaliye() yöntemlerinden herhangi birini çağırmazsa, HttpServletResponse.SC_INTERNAL_SERVER_ERROR için durum koduyla bir hata gönderimi gerçekleştirin.
  3. eşleşen hata sayfası bulunmuştur veya hata sayfası, (tam) veya sevk herhangi biri() yöntemleri çağırmak) (tam aramadım demektir."

Son satır yukarıda taşımaktadır en önem - AsyncContext.complete() bir çağrı orada olacağım The javadoc says.

bu AsyncContext başlatmak için kullanılan yanıtı kapatarak bu AsyncContext initialze için kullanılan istek başlandı uyumsuz işlemi tamamlar

AsyncContext kapalıyken, yöntemlerinin çoğunun IllegalStateException kodunu atması çağrılır.

+0

Yanıtınız için teşekkürler :-) – xwinus

+0

@xwinus Cevabı beğendiyseniz, onaylayın. –

+0

@JacekLaskowski: +1. Sanırım başka bir konuya da posterleri başka sorulara da yanıtladınız [burada] (http://stackoverflow.com/questions/15228031/java-lang-illegalstateexception-not-suspended-when-asynccontextcomplete)! – brainOverflow