【问题标题】:Dispatch request to an Async Servlet from managed bean generate exception从托管 bean 向异步 Servlet 发送请求生成异常
【发布时间】:2012-09-04 21:15:07
【问题描述】:

单击按钮时,我需要在后台运行一些东西,所以我有一个异步 Servlet。从我的托管 bean 中,如果我进行重定向,它工作得很好(这意味着它在我的类中执行我的 run() 方法,extends Runnable 正确)。像这样

String url = externalContext.getRequestContextPath() + "/ReportExecutionServlet";
externalContext.redirect(url);

但如果我切换到调度,像这样

externalContext.redirect("/ReportExecutionServlet");

当我尝试获取AsyncContext时失败

AsyncContext aCtx = request.startAsync(request, response);

错误如下

Caused By: java.lang.IllegalStateException: The async-support is disabled on this request: weblogic.servlet.internal.ServletRequestImpl

知道如何解决这个问题吗?

注意:这是执行我的异步 servlet 的方法,以防万一:

    AsyncContext aCtx = request.startAsync(request, response);            
    //delegate long running process to an "async" thread
    aCtx.addListener(new AsyncListener() {

        @Override
        public void onComplete(AsyncEvent event) throws IOException {
            logger.log(Level.INFO, "ReportExecutionServlet handle async request - onComplete");
        }

        @Override
        public void onTimeout(AsyncEvent event) throws IOException {
            logger.log(Level.WARNING, "ReportExecutionServlet handle async request - onTimeout");
        }

        @Override
        public void onError(AsyncEvent event) throws IOException {
            logger.log(Level.SEVERE, "ReportExecutionServlet handle async request - onError");
        }

        @Override
        public void onStartAsync(AsyncEvent event) throws IOException {
            logger.log(Level.INFO, "ReportExecutionServlet handle async request - onStartAsync");
        }
    });
    // Start another service
    ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(10);            
    executor.execute(new AsyncRequestReportProcessor(aCtx));

【问题讨论】:

标签: java jsf servlets servlet-3.0 weblogic12c


【解决方案1】:

JSF 2.x 不支持异步功能,所以它为什么不工作。更多信息可以在这里找到FacesServlet Servlet 3.0 Async Support

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-26
    • 2019-10-08
    • 2013-12-10
    相关资源
    最近更新 更多