我使用HK2 运营来管理Java应用程序中的自定义作用域,该应用程序包含一个REST服务器组件。其余部分由泽西岛提供。
泽西允许资源返回一个(可能运行缓慢或长期运行) StreamingOutput,而不是一个离散实体。据我所知,这提供了一种处理较低层的异步行为形式。我观察到的是,当流输出正在运行时,处理初始泽西请求的线程再次可以自由地处理新泽西请求,这需要它们自己的作用域。
HK2说:
HK2操作为构建作用域/上下文对提供了一组方便的工具,这些工具遵循“一次对一个线程进行一次操作”的一般规则。
不幸的是,这就是它碰撞的地方。当传入请求被路由到已经/仍在向其他地方提供StreamingOutput服务的同一个线程时,无法启动该操作:
java.lang.IllegalStateException: The operation OperationHandleImpl(OperationIdentifier(326193,my.TransactionScope),254339200) is active on 62有什么建议吗?
发布于 2020-09-14 19:20:29
操作是gr8,但必须遵循“单线程实时操作”的规则。
其实只有两件事可做。
https://stackoverflow.com/questions/63667660
复制相似问题