Was ist das genaue Verhalten von AsyncContext nachdem es mal aus? Wird es immer noch ausgeführt und gibt es eine Antwort mit getResponse() zurück?JavaEE 6 AsyncContext Verhalten nach Timeout
Antwort
Java Servlet 3.0 Maintenance Release auf Seite 34 liest:
Ein Aufruf dieser Methode -
ServletRequest.startAsync(ServletRequest req, ServletResponse res)
- stellt sicher, dass die Antwort nicht verpflichtet ist, wenn die Anwendung beendet aus dem Service-Methode. Es verpflichtet sich, wenn AsyncContext.complete auf dem zurück AsyncContext oder die AsyncContext mal aufgerufen wird, und es gibt keine Zuhörer zugeordnet die Zeit zu handhaben werden. Der Timer für async Auszeiten erst in der Anfrage starten und die dazugehörenden Antwort haben aus dem Behälter zurückgeführt. Das AsyncContext könnte verwendet werden, um die Antwort von dem Async Thread zu schreiben. Es kann auch verwendet werden, um nur zu benachrichtigen, dass die Antwort nicht geschlossen und festgeschrieben ist.
Von the javadoc of the javax.servlet.AsyncContext interface:
In dem Fall, dass ein asynchroner Vorgang abgelaufen ist, muss die Behälter durch diese Schritte ausführen:
- Invoke an ihrer onTimeout Methode, alle AsyncListener Instanzen, die mit der ServletRequest registriert wurden, für die die asynchrone Operation initiiert wurde.
- Wenn keiner der Listener die Methode complete() oder eine der Methoden dispatch() aufgerufen hat, führen Sie eine Fehlerübermittlung mit dem Statuscode an HttpServletResponse.SC_INTERNAL_SERVER_ERROR aus.
- Wenn keine passende Fehlerseite gefunden, oder die Fehlerseite nicht abgeschlossen wurde() aufrufen oder einen der dispatch() Methoden, rufen complete().“
Die obige letzte Zeile ist von am wichtigsten - es werde ein Aufruf an AsyncContext.complete()
sein The javadoc says.
Vervollständigt den asynchronen Vorgang, der auf die Anforderung gestartet wurde die verwendet wurde, um dieses AsyncContext zu initialze, Schließen der Antwort die verwendet wurde, um dieses AsyncContext zu initialisieren
Mit AsyncContext
geschlossen, werden Aufrufe an die meisten seiner Methoden IllegalStateException
werfen.
- 1. Weblogic 11g und JavaEE 6
- 2. JAAS-Konfiguration und LDAP-Login-Modul in JavaEE 6
- 3. JavaEE - InvalidClassException
- 4. Java 6 map.get() Typ Sicherheit unerwartetes Verhalten
- 5. Timeout Verhalten in HttpWebRequest.GetResponse() vs GetResponseAsync()
- 6. Wie Timeout-Verhalten mit TestScheduler zu erreichen?
- 7. JavaEE Timer Service
- 8. Reset-Anwenderaufforderung Nach Timeout
- 9. Was ist "Facette" in JavaEE?
- 10. Mysterious Fehler nach 6
- 11. Überwachungstools für die JavaEE-App
- 12. "javaee-indossed-api-6.0" fehlt
- 13. JDBCTemplate für JavaEE und CDI
- 14. Webservice-Antwortzeit Nach Leerlauf-Timeout
- 15. Fehleraufrufe nach Timeout-Befehl vermeiden
- 16. Gleichgültiges Verhalten der Zoomstufe in IOS 6 Kartenansicht
- 17. DynanoDB Streams Verhalten nach Neuverteilung
- 18. UINavigationController seltsames Verhalten nach UIApplicationDidBecomeActiveNotification
- 19. Nito.AsyncEx + .Net-4.0 = 'AsyncContext' existiert nicht im Namespace 'Nito.AsyncEx'
- 20. Ist Vagrant nützlich für Java/Javaee Entwickler?
- 21. Wie bekomme ich glassfish/javaee Anwendungsversion?
- 22. Kann nicht JavaEE Anwendung bereitstellen 4.1
- 23. Maven Source für javax javaee-api 6.0
- 24. Probleme mit JavaEE Probe FirstCup dukesAge
- 25. MOXy-Ausnahmen in JavaEE Jersey 2.0-Projekt
- 26. iOS 5 und iOS 6 - UIWebView Unterschied im Verhalten
- 27. Unterschiedliches Verhalten zwischen Java 5 & 6 beim Überladen generischer Methoden
- 28. Delphi 10 Seattle seltsam Memo Verhalten auf Android 6
- 29. C# 6 Fehler? virtuelle neue Methode seltsame Verhalten
- 30. MVC3-Session-Timeout nach 10 Sekunden
Dank für Ihre Antwort :-) – xwinus
@xwinus, wenn Sie die Antwort wünschen, genehmigen. –
@JacekLaskowski: +1. Ich glaube, Sie haben auch indirekt die Poster andere Frage beantwortet [hier] (http://stackoverflow.com/questions/15228031/java-lang-illegalstateexception-not-suspended-when-asynccontextcomplete)! – brainOverflow