Multithreading 不能';t从自繁殖线程访问FacesContext.getCurrentInstance()
无法在自生成的线程中获取“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
需要根据后端进程动态更新组件。通过创建一个用于监视进程的线程并回调组件更新以及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应用程序中生成非托管线程是一种气味。确保你真正理解自己在做什么。另见