nob*_*ies 2 multithreading primefaces jsf-2
无法在自生成的线程中获取"FacesContext.getCurrentInstance()". 
需要根据后端进程动态更新组件.通过创建监视进程的线程并使用p:poll回调组件更新来实现相同目的.
但是,似乎"FacesContext.getCurrentInstance()"不适用于新线程.在调用任何依赖于来自新生成的线程的FacesContext.getCurrentInstance()的实用程序方法时,只需获取NPE.
有没有办法在自生成的线程中获得"FacesContext.getCurrentInstance()"?
环境JSF2.0,Prettyfaces-jsf2-3.3.2,Primafaces 3.2,Tomcat 6.0.32,JDK 5.0
谢谢,
它FacesContext是ThreadLocal<T>存储在执行当前HTTP servlet请求的线程中的.你肯定无法在你自己产生的其他线程中访问它,这将破坏JSF/Servlet的整个工作.您应该将您需要的那些信息从FacesContextrunnable对象传递给它的构造函数,可能只是具体的bean实例本身,或者其他一些对象,它们也被称为会话属性.
顺便说一句,在Java EE Web应用程序中生成非托管线程是一种气味.确保你真正理解你在做什么.另请参阅在JSF托管bean中启动新线程是否安全?
| 归档时间: | 
 | 
| 查看次数: | 2968 次 | 
| 最近记录: |