2017-04-25 15 views
4

当社では、wildfly 10.1で動作する準標準RESTサービスを開発中です。各要求はフィルタによって傍受されるテナントヘッダを所有しており、テナント情報は残りの部分またはサービス層の中で後で使用するために@RequestScoped bean内に格納されます。ここまでは順調ですね。 サービス内の一部のコードがJava 8並列ストリームを使用していて、現在のテナントを参照するために@RequestScoped beanを使用できなかったことが判明しました。 これを数回確認しました。非並列ストリームを使用することで、この問題が解決されました。Java 8並列ストリームを使用する場合、Java EE Request Scopeを緩和するのは正常ですか?

これは正常な動作ですか?標準のJava 8機能を使用すると、予想されるコンテナの動作が損なわれることは本当に混乱しています。

私たちが気にする必要がある他の犯人はありますか?

+2

関連普通です:http://stackoverflow.com/questions/36338505/completablefuture-parallelstream-in-javaee-app-server – assylias

答えて

4

It seemsより並列では、管理されたコンテキストでもスレッドが生成されます。

しかし、RequestScopedはThreadLocalを使用して処理されています(これはまだ古くなったマルチスレッドモデル、つまりhttpリクエスト= 1スレッドです)。

はそうです、それは

+0

多分これは – Gab

+2

がこれを参照してくださいwildflyするバグとして報告しなければなりません:https://issues.jboss.org/browse/CDI-587 – maress

関連する問題