Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 不能';t从自繁殖线程访问FacesContext.getCurrentInstance()_Multithreading_Jsf 2_Primefaces - Fatal编程技术网

Multithreading 不能';t从自繁殖线程访问FacesContext.getCurrentInstance()

Multithreading 不能';t从自繁殖线程访问FacesContext.getCurrentInstance(),multithreading,jsf-2,primefaces,Multithreading,Jsf 2,Primefaces,无法在自生成的线程中获取“FacesContext.getCurrentInstance()”。 需要根据后端进程动态更新组件。通过创建一个用于监视进程的线程并回调组件更新以及p:poll,可以实现同样的效果 但是,“FacesContext.getCurrentInstance()”似乎不适用于新线程。只是在从新生成的线程调用依赖于FacesContext.getCurrentInstance()的任何实用程序方法时获取NPE 有没有办法让“FacesContext.getCurrentIn

无法在自生成的线程中获取“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

谢谢,

作为存储在执行当前HTTP servlet请求的线程中的。您肯定无法在自己生成的其他线程中访问它,这将破坏JSF/Servlet的整个工作。相反,您应该将所需的信息从可运行对象中的
FacesContext
准确地传递给它的构造函数,可能只是具体的bean实例本身,或者其他一些对象,这些对象反过来也被引用为会话属性

顺便说一句,在JavaEEWeb应用程序中生成非托管线程是一种气味。确保你真正理解自己在做什么。另见