【问题标题】:Is it normal to loose The Java EE Request Scope when using Java 8 parallel Stream?使用 Java 8 并行流时松开 Java EE 请求范围是否正常?
【发布时间】:2017-04-25 09:51:11
【问题描述】:

在我们公司,我们正在开发在 Wildfly 10.1 中运行的准标准 REST 服务。每个请求都有一个租户标头,该标头将被过滤器拦截,并且租户信息将存储在@RequestScoped bean 中,以供以后在其余层或服务层中使用。到目前为止,一切都很好。 现在我们发现服务中的一些代码正在使用 Java 8 并行流,并且未能使用 @RequestScoped bean 来查找当前租户。 我们多次验证了这一点。使用非并行流为我们解决了这个问题。

这是正常行为吗?我们真的很困惑,使用标准的 Java 8 特性会破坏我们预期的容器行为..

还有其他我们需要注意的罪魁祸首吗?

【问题讨论】:

标签: java jakarta-ee jboss java-8 wildfly


【解决方案1】:

It seems 即使在托管上下文中,并行也会产生线程。

但是 RequestScoped 是使用 ThreadLocal 处理的(我们仍然使用旧的多线程模型,即 http Request = 1 线程)。

是的,这很正常

【讨论】:

  • 也许这应该作为一个错误报告给wildfly
猜你喜欢
  • 2014-05-15
  • 2019-12-10
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 2016-08-27
  • 2018-07-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多