首页  >  文章  >  Java  >  如何将 EJB 注入 JAX-RS 服务?

如何将 EJB 注入 JAX-RS 服务?

DDD
DDD原创
2024-11-07 07:20:02313浏览

How to Inject EJBs into JAX-RS Services?

将 EJB 注入 JAX-RS 服务

问题描述

尝试通过注释将无状态 EJB 注入 JAX-RS Web 服务会导致null EJB 引用,导致 NullPointerException

解决方案

虽然将 JAX-RS Web 服务注释为 @Stateless 似乎是一个直接的解决方案,但单独使用 JAX-RS 是不可行的。考虑以下替代方法:

选项 1:注入提供程序 SPI

实现执行 EJB 查找和注入的注入提供程序。相应地注册提供程序。

选项 2:将 BookResource 嵌入为 EJB

将 BookResource 类注释为 @Stateless 并在 EJB 中管理其生命周期。然而,这种方法使单元测试更具挑战性。

选项 3:利用 CDI

使用 CDI 进行依赖注入,如提供的示例所示。这种方法提供了简单性和灵活性,特别是在测试环境中。

工作示例(选项 1)

结论

通过实现注入提供程序或采用CDI,可以将 EJB 注入到 JAX-RS 服务中,从而扩展了两个框架之间的集成选项。

以上是如何将 EJB 注入 JAX-RS 服务?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn