Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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
JavaEE请求范围和异步_Java_Jakarta Ee_Asynchronous - Fatal编程技术网

JavaEE请求范围和异步

JavaEE请求范围和异步,java,jakarta-ee,asynchronous,Java,Jakarta Ee,Asynchronous,我试图使用拦截器对日志性能计时 @LogPerformance @Interceptor public class PerformanceInterceptor { 时间存储在请求范围的bean中。请求完成后,时间将写入日志文件 当我将几个记录的方法更改为异步时,这些操作的记录停止输出 @Asynchronous @LogPerformance public Future<String> getString() { 异步的 @对数性能 公共未来getString(){

我试图使用拦截器对日志性能计时

@LogPerformance
@Interceptor
public class PerformanceInterceptor {
时间存储在请求范围的bean中。请求完成后,时间将写入日志文件

当我将几个记录的方法更改为异步时,这些操作的记录停止输出

 @Asynchronous
 @LogPerformance
 public Future<String> getString()  {
异步的 @对数性能 公共未来getString(){ 我相信新的EJB线程正在定义一个新的请求范围。我可以记录拦截器的输出并查看请求范围的对象,但是有两个不同的地址附加到对象上。一个地址用于http线程,另一个地址用于EJB线程


是否有一种方法允许异步方法的拦截器写入http请求范围中的对象?是否有另一种方法将数据返回到父范围?

容器将向执行异步方法的线程传播


您可以将此EJBContext注入到拦截器中,并将您希望通过的任何状态(例如请求范围的bean)隐藏到拦截器中。

我尝试将EJBContext注入拦截器中(包括@Resource和@inject)。容器启动时失败(缺少依赖项)。我认为原因是拦截器是一个CDI Bean,因此没有与其关联的EJBContext。我希望在EJB方法上声明的拦截器的生命周期将由EJB容器控制。请包含一个代码段,说明您是如何做到这一点的。我无法访问存储的contextData va使用Payara、Wildfly、TomEE和Websphere Liberty概要文件从@Asynchronous方法获取LUE。(即使不使用拦截器)