注入球衣 RS 服务(资源)的 CDI 拦截器不起作用?

dol*_*les 5 cdi jersey-2.0

所以,我有一个 tomcat 8 + jersey 2.5.1 +weld CDI 应用程序,在大多数情况下运行得很好。失败的地方是我无法使用 CDI 拦截器拦截球衣资源方法调用。这是有道理的,因为球衣资源类不是 CDI bean。那么,有没有办法让CDI拦截器在球衣上发挥作用呢?提出这个问题的另一种方式是:CDI bean 可以用作 Jersey 资源吗?

谢谢!

编辑: 在我使用 Jersey 编写 RESTful 资源之前,我有用于开始和提交数据库事务的 CDI 拦截器。我确实需要遵循相同或相似的模式在我的 RESTful 球衣资源中实现这种横切事务注入。这就是问这个问题的主要原因。

再次感谢!

Sym*_*Sym 0

Adam Bien 在一篇演示中建议您将服务(CDI 或 EJB)类与 RESTful 资源类分开。他的原因是 RESTful 类通常使用 Jersey 注入的 HttpHeaders,但在 CDI 或 EJB 容器中不可用。危险在于,如果任何 CDI 客户端(例如 JSF 框架)使用 RESTful 类,则可能会注入 HttpHeaders 的 Null 引用。

感谢您的自我回答问题。您刚刚展示了第二个用例,验证了 Adam Bien 的建议。

只需将它们分开即可!