【发布时间】:2011-09-15 01:21:23
【问题描述】:
我正在用 JSF 2.0 开发一个应用程序,我想要一个多行文本框,用于显示从文件中实时读取(逐行)的输出数据。
所以目标是有一个页面上有一个按钮,触发后端开始读取文件,然后在文本框中显示结果。
我曾想过通过以下方式做到这一点:
让本地页面跟踪到目前为止它在文本框中检索/显示的行。
本地页面会定期使用 AJAX 轮询后端并请求已读取的任何新数据(告诉它页面到目前为止有哪些行,然后只检索新行)。
这将一直持续到整个文件被完全检索到为止。
问题是从文件中读取的 bean 方法正在运行一个阻塞的 while 循环。因此,要同时读取它正在写入的数据结构将需要使用额外的线程,对吗?我听说在 Web 应用程序中生成新线程是一个潜在的危险举动,应该使用线程池等。
任何人都可以对此有所了解吗?
更新:我尝试了几种不同的方法,但都没有成功。但是我确实设法通过生成一个单独的Thread 来运行我的阻塞循环,而当处理 AJAX 请求时,主线程可以用来读取它。有没有一个好的库可以用来做类似的事情,仍然让 JSF 对这个 Thread 进行一些生命周期控制?
【问题讨论】:
-
您的目标是支持 EJB 的 Java EE 5 还是 6 容器?
-
我将它部署在不支持 EJB 的 Tomcat 服务器上...我希望我可以访问 @Asynchronous 注释,但我没有
标签: java ajax jsf jsf-2 javabeans