Java 独立于线程Id的HK2操作

Java 独立于线程Id的HK2操作,java,jersey,cdi,hk2,Java,Jersey,Cdi,Hk2,我正在使用HK2管理JavaSE应用程序中的自定义范围,该应用程序包含REST服务器组件。其余部分由泽西提供 Jersey允许资源返回一个(可能慢或长时间运行)而不是一个离散实体。据我所知,这提供了一种在较低层处理的异步行为。我观察到的是,在流式输出运行时,处理初始Jersey请求的线程可以再次自由处理新泽西请求,这些请求需要自己的作用域 香港2号表示: HK2操作提供了一套方便的工具,用于构建作用域/上下文对,这些作用域/上下文对遵循“一次对一个线程执行一个操作”的一般规则 不幸的是,这就是它

我正在使用HK2管理JavaSE应用程序中的自定义范围,该应用程序包含REST服务器组件。其余部分由泽西提供

Jersey允许资源返回一个(可能慢或长时间运行)而不是一个离散实体。据我所知,这提供了一种在较低层处理的异步行为。我观察到的是,在流式输出运行时,处理初始Jersey请求的线程可以再次自由处理新泽西请求,这些请求需要自己的作用域

香港2号表示:

HK2操作提供了一套方便的工具,用于构建作用域/上下文对,这些作用域/上下文对遵循“一次对一个线程执行一个操作”的一般规则

不幸的是,这就是它发生冲突的地方。当传入请求被路由到已在/仍在向其他地方提供流输出的同一线程时,操作无法启动:

java.lang.IllegalStateException: The operation OperationHandleImpl(OperationIdentifier(326193,my.TransactionScope),254339200) is active on 62

关于如何操作的任何提示?

操作是gr8,但必须遵循“一次一线程一次操作”的规则

实际上只有两件事要做

  • 请Eclipse提供扩展操作工作方式的功能
  • 可以使用操作api本身来检测操作是否正在运行。。。如果是的话。。。相反,分叉一个不同的线程,并在那里继续您的操作(完全破解,但…可能会工作)

  • 操作是gr8,但必须遵循“一次一个线程一个操作”的规则

    实际上只有两件事要做

  • 请Eclipse提供扩展操作工作方式的功能
  • 可以使用操作api本身来检测操作是否正在运行。。。如果是的话。。。相反,分叉一个不同的线程,并在那里继续您的操作(完全破解,但…可能会工作)

  • 另一个
    操作
    用户在野外!可悲的是,我认为你运气不好,因为上次我使用它们时,它们被显式地绑定到给定的线程,不可能改变它。另一个
    操作
    用户在野外!可悲的是,我认为您运气不好,因为上次我使用它们时,它们被明确地绑定到给定的线程,不可能改变它。