如何在异步servlet中实现AsyncListener / ReadListener / WriteListener.onError?

时间:2014-03-20 14:28:14

标签: java servlets asynchronous

Servlet 3.1 API定义了一个异步servlet API,该API用于实现接口AsyncListener,WriteListener和ReadListener。所有这些都有一个onError回调,但我找不到有关此回调的错误条件和预期行为的任何有用信息。

example中,作者在onError回调中完成了AsyncContext:

public void onError(final Throwable t) {
    ac.complete();
    t.printStackTrace();
}

对于异常servlet在发生错误时应该做什么,是否有最佳实践?

有趣的是,如果HTTP请求被客户端中止(使用Jetty 9.1.3测试),则不会调用onError处理程序。但是,在这种情况下,这里似乎存在内存泄漏,因为WriteListener似乎没有被清除。只有ReadListener和AsyncListener实例在调用System.gc()时才会看到finalize()调用(用于测试)。

0 个答案:

没有答案