java asynccontext,超时后的JavaEE 6 AsyncContext行为

What is the exact behavior of AsyncContext after it times out? Does it still run and does it return response using getResponse()?

解决方案

Java Servlet 3.0 Maintenance Release on page 34 reads:

A call to this method - ServletRequest.startAsync(ServletRequest req,

ServletResponse res) - ensures that the response isn't committed when

the application exits out of the service method. It is committed when

AsyncContext.complete is called on the returned AsyncContext or the

AsyncContext times out and there are no listeners associated to handle

the time out. The timer for async time outs will not start until the

request and it’s associated response have returned from the container.

The AsyncContext could be used to write to the response from the async

thread. It can also be used to just notify that the response is not

closed and committed.

In the event that an asynchronous operation has timed out, the

container must run through these steps:

Invoke, at their onTimeout method, all AsyncListener instances registered with the ServletRequest on which the asynchronous operation

was initiated.

If none of the listeners called complete() or any of the dispatch() methods, perform an error dispatch with a status code equal

to HttpServletResponse.SC_INTERNAL_SERVER_ERROR.

If no matching error page was found, or the error page did not call complete() or any of the dispatch() methods, call complete()."

The last line above is of most importance - there'll be a call to AsyncContext.complete(). The javadoc says:

Completes the asynchronous operation that was started on the request

that was used to initialze this AsyncContext, closing the response

that was used to initialize this AsyncContext.

With AsyncContext closed, calls to most of its methods will throw IllegalStateException.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453491.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BZOJ1857:[SCOI2010]传送带——题解

http://www.lydsy.com/JudgeOnline/problem.php?id1857 Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段。两条传送带分别为线段AB和线段CD。lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R。…

mnt/sdcard和storage/sdcard的区别

/mnt 目录,熟悉linux的人都清楚,linux默认挂载外部设备都会挂到这个目录下面去,如将sd卡挂载上去后,会生成一个/mnt/sdcard 目录。 storage/sdcard 目录,这是一个软链接(相当于windows的文件夹的快捷方式&a…

kd树的原理

kd树就是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构,可以运用在k近邻法中,实现快速k近邻搜索。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分。    假设数据集\(T\)的大小是\(m*n\),即\(T{x_1,x_2,...x_m}\),其中…

应聘华为的朋友小心了,应聘华为的悲惨遭遇!

以下内容全部真实,为本人亲身经历。可随时进行当面对质。 本人女朋友,原本是西安一家企业里面的行政助理,工作比较稳定,收入不高,但也基本够她用了。 一天,我的一个同学(华为员工)说…

力软 java主从表保存_JAVA常用知识总结(十二)——数据库(二)

MySQL主从热备份工作原理简单的说:就是主服务器上执行过的sql语句会保存在binLog里面,别的从服务器把他同步过来,然后重复执行一遍,那么它们就能一直同步啦。整体上来说,复制有3个步骤:作为主服务器的Maste…

HttpClient和DefaultHttpClient

HttpClient 是接口,DefaultHttpClient是实现这个接口的子类 public interface HttpClient {/*** Obtains the parameters for this client.* These parameters will become defaults for all requests being* executed with this client, and for the parameters of…

Go语言版黑白棋

1、游戏说明2、无边框窗口实现3、背景图、最小化、关闭窗口4、界面其它设计5、黑白子提示闪烁效果6、落子7、初始化棋子、改变角色8、倒计时9、吃子10、棋子个数统计、胜负判断11、机器落子 转载于:https://www.cnblogs.com/tennysonsky/p/8442827.html

vue使用render渲染jsx

vue&jsx文档 vue实例属性 // App.ts import hBtn from ./components/hBtn import hUl from ./components/hUlexport default {data(){return {theme: "mdui-theme-pink",accent: "mdui-theme-accent-pink",users:[aoo, boo, coo]}},methods:{},render(…

java中的多线程有什么意义_Java多线程与并发面试题(小结)

1,什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一…

IT必须掌握的常用命令

一,ping      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们…

Callable类

(一) Callable和Runnable比较相似,都可以用来实现线程任务。但callable使用了泛型设计,使用一个V类型值,能够 在执行结束后返回一个V类型的值。而Runable只会返回一个void,不能够获得执行的结果。 &#x…

Java——线程的创建,线程池

线程 多线程就是一个程序中有多个线程在同时执行。 多线程下CPU的工作原理 实际上,CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言,某个时刻,只能执行一个线程,而CPU的在多个线程间切换速度…

初级第一旬05— 蓝字观试题

准提法网络佛学院 准提法教学平台 一、高七师提倡初学准提法者,应先观蓝字,在《显密圆通成佛心要集》中有依据吗? 二、正修的时候,如果不得不中断怎么办? 三、蓝字观有几种手印?可以单独使用吗?…

java并查集找朋友圈_图—并查集(解决朋友圈问题)

图也是一种 非线性结构,是由多个顶点组成的关系集合组成的一种数据结构。图可以分为两种,无向图和有向图。★图的定义:★典型问题:利用图能够解决很多问题,这里有一个较为典型的问题,假如已知有n个人和m对好友关系(存于…

技术这东西,不可不看,不可全看.

最近忙着玩开心,好久没来CSDN了,首页上有90后程序员的消息了,稍微感慨一下,曾几何时,自己这个80后还被70后的前辈所笑话,转眼就成了5年经验的老油条了.呵呵. 5年,个人认为经历还是有些代表性的,就跟刚入行或者即将入行的哥们交个底吧,这5年到底学到了什么. 如果你看完这篇文…

rand.nextint()

自从JDK最初版本发布起,我们就可以使用java.util.Random类产生随机数了。在JDK1.2中,Random类有了一个名为nextInt()的方法:public int nextInt(int n)给定一个参数n,nextInt(n)将返回一个大于等于0小于n的随机数,即&a…

Android开发常用的插件及工具

1、GitHub,这个不管是做安卓还是其他,只要是开发就必上的网站,也是天朝没有墙掉为数不多的网站 2、Stack OverFlow,这个和上面一样,国外非常著名的问答网站,在上面基本上很多问题都可以得到解决 3、Genymotion模拟器,搞…

java poi 设置标题_poi生成Word时指定文本样式,如“正文”,“标题1”,“标题2”等...

POI生成Word时,设置段落的样式String style "2"; //标题2的样式XWPFParagraph xwpfParagraph doc.insertNewParagraph(run);xwpfParagraph.setStyle(style);其实设置其他的样式都一样。例如:你想设置你的样式为“标题2”(“标题2”只是你在w…

使用python做最简单的爬虫

使用python做最简单的爬虫 --之心 #第一种方法import urllib2 #将urllib2库引用进来responseurllib2.urlopen("http://www.baidu.com") #调用库中的方法,将请求回应封装到response对象中htmlresponse.read() #调用response对象的read(&#x…

SurfaceView介绍

SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制)。但是在其他线程中却不能修改UI元素&…