无法从自生成线程访问 FacesContext.getCurrentInstance()

2024-06-21

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

谢谢你,


The FacesContext http://docs.oracle.com/javaee/6/api/javax/faces/context/FacesContext.html是作为一个ThreadLocal<T> http://docs.oracle.com/javase/7/docs/api/java/lang/ThreadLocal.html存储在执行当前 HTTP servlet 请求的线程中。您绝对无法在您自己生成的其他线程中访问它,这会破坏 JSF/Servlet 的整个工作。你应该准确地传递that您需要的信息FacesContext在可运行对象的构造函数中,可能只是具体的 bean 实例本身,或者其他一些对象,这些对象反过来也被作为会话属性引用。

顺便说一句,在 Java EE Web 应用程序中生成非托管线程是一种味道。确保您真正了解自己在做什么。也可以看看在 JSF 托管 bean 中启动新线程是否安全? https://stackoverflow.com/questions/6149919/is-it-safe-to-start-a-new-thread-in-a-jsf-managed-bean/6151574#6151574

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从自生成线程访问 FacesContext.getCurrentInstance() 的相关文章

随机推荐

  • 如何使用logstash在两个索引上创建别名?

    在我正在处理的集群中有两个主要索引 比方说indexA and indexB但这两个索引每天都会被索引 所以通常我有indexA YYYY MM dd and indexB YYYY MM dd 我想要的是有一个别名可以收集indexA Y
  • 函数的变量存储在哪里?在堆栈或堆上?

    当程序调用函数时 为该函数中的变量分配哪种类型的数据结构内存 堆还是栈 为什么 在我看来 它应该存储在堆栈上 因为它们不一定是引用类型 但在我读到答案的地方 据说它们存储在堆上 并在函数返回值后释放 它比这更复杂一点 事实上使用堆栈和堆实际
  • React Jest 示例不起作用

    尝试运行 Jest 测试 React 代码的示例 来自https github com facebook jest tree master examples react https github com facebook jest tree
  • 与其他布局相比,约束布局是否昂贵?

    当我意识到 ConstraintLayout 有 更好的布局拖放 通过更好的命名 top toBottomOf 更好地查看相对设置 更好的布局结构与比率和百分比指南 还有更多不能在这里说明或者我只是不知道 我一直想不断地使用它 因为它太舒服
  • 无法通过预处理器指令将字符串小写转换为大写

    我制作了一个将字符串小写转换为大写的程序 我知道如何通过预处理器指令将字符转换为大写 但我不知道如何对字符串执行此操作 include
  • Python 解析 XML 提要错误:XPathEvalError:未定义的命名空间前缀

    我正在尝试处理 XML 文件 但收到此错误 XPathEvalError Undefined namespace prefix 在这一行中 print category item xpath g google product categor
  • 使用加密c#导出PKCS8中的CngKey

    如何将 CngKey 导出到 PKCS 8 并加密 static void Main string args CngKeyCreationParameters ckcParams new CngKeyCreationParameters E
  • 如何将 php curl 中的 cookie 获取到变量中

    因此 其他公司的一些人认为 如果不使用soap xml rpc rest 或任何其他合理的通信协议 而是将所有响应作为cookie 嵌入标头中 那就太棒了 我需要从这个卷曲响应中将这些 cookie 作为数组取出 如果我不得不为此浪费大量的
  • 在 iOS 中发送音频文件和 JSON 字符串

    我正在尝试将音频文件和 JSON 字符串发送到 PHP 服务器 使用以下代码将发送 JSON 但文件到达时为空 如果我将 JSON 块放在音频块下方 文件将完全到达 但 JSON 为空 有什么想法吗 void sendFile NSStri
  • 如何测试无状态组件

    我正在尝试测试下面的组件 但出现错误 它是一个带有一些数据的功能组件 下面的组件从父组件接收信息列表并渲染 它工作完美 但是在编写测 试用例时 它使用笑话和酶失败 import React from react export const I
  • Swift - 我可能已经删除了 Apple Swift Packages 集合

    我对 swift 和 XCode 很陌生 昨天我正在开发一个项目 想尝试一下某人制作的自定义日期选择器 所以我转到 添加包 并粘贴 GitHub 链接并添加它 我已经在我的项目中添加了一个名为 KeychainAccess 的不同包 方式
  • Signal R Native Android 应用程序协商失败

    我正在尝试创建一个可以连接到我的基本 SignalR Hub 的 Android 应用程序 它只是一个基本的集线器文件 我想用它来测试一些东西 但到目前为止我还没有运气 有人可以看看我做错的事情吗 每次我尝试运行它时 我都会收到以下堆栈竞赛
  • MVC @model 含义

    在MVC5中 什么是 model html and using意思是我们通常使用的原因和时间 后面跟着哪个词 例如 model MVC Project2 Models stufftable写在re cshtml页面的第一个 stufftab
  • 使用 Java 清理 CSS

    Java 中有没有一个好的库可以清理 CSS 样式表 我们希望允许管理员用户上传 CSS 样式表来控制他们管理的网站部分的外观 当然 我们不希望出现诸如background url javascript 之类的XSS攻击 因此我们正在寻找一
  • 在 C# 中读取/写入大型 XML 文件

    我正在开发一个带有 XML 数据库的应用程序 我有很大的 XML 文件 我必须在其中读取和写入数据 问题是我不想将整个 XML 文件加载到内存中 也不想因为性能问题而循环遍历整个文件 因为如果我将整个文件加载到内存中 这将影响应用程序性能
  • R - tidyr - 变异并传播多列

    我在 R 中有以下数据框 my df test lt data frame V1 c 1 2 1 V2 c A B A V3 c S1 S1 S2 V4 c x x x V5 c y y y V6 c A B C V7 c D E F my
  • 导出火力基地

    我想知道是否可以频繁 循环 导出 firebase 数据 可能作为 JSON 对象 我问这个问题的主要原因是因为我想在特定时间点捕获数据 以便对它们执行一系列分析 识别特定模式 我对属于 Firebase API 一部分的任何操作 方法感兴
  • gitignore 匹配子目录中带有前缀和后缀的文件

    我喜欢只跟踪以 es 开头并以 h 或 m 结尾的文件 所以我尝试了这个 exlude all except es h es m and exlude all except es h es m 但对于子目录中的文件都不起作用 当你忽略一切
  • Javascript 或 jQuery Flot 中的仪表图 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在尝试获得一个看起来像仪表的图表 我已经在其他图表中使用 jQuery Flot 那么是否可以使用 Flot 或纯 Javascrip
  • 无法从自生成线程访问 FacesContext.getCurrentInstance()

    无法在自生成线程中获取 FacesContext getCurrentInstance 需要根据后端进程动态更新组件 通过创建一个线程来监视进程并回调组件更新以及 p poll 来实现相同的效果 但是 似乎 FacesContext get