@Override
public void setReadListener(final ReadListener readListener) {
if (readListener == null) {
throw UndertowServletMessages.MESSAGES.listenerCannotBeNull();
}
if (listener != null) {
throw UndertowServletMessages.MESSAGES.listenerAlreadySet();
}
if (!request.isAsyncStarted()) {
throw UndertowServletMessages.MESSAGES.asyncNotStarted();
}
asyncContext = request.getAsyncContext();
listener = readListener;
channel.getReadSetter().set(internalListener = new ServletInputStreamChannelListener());
//we resume from an async task, after the request has been dispatched
asyncContext.addAsyncTask(new Runnable() {
@Override
public void run() {
channel.getIoThread().execute(new Runnable() {
@Override
public void run() {
channel.resumeReads();
internalListener.handleEvent(channel);
}
});
}
});
}
ServletInputStreamImpl.java 文件源码
java
阅读 32
收藏 0
点赞 0
评论 0
项目:lams
作者:
评论列表
文章目录