首页 > Java > java教程 > 正文

如何将无状态 EJB 注入 JAX-RS Web 服务?

Susan Sarandon
发布: 2024-11-07 11:48:03
原创
489 人浏览过

How to Inject Stateless EJBs into JAX-RS Web Services?

将 EJB 注入 JAX-RS Web 服务

问题描述:

尝试将无状态 EJB 注入到使用注释的 JAX-RS Web 服务,EJB 实例在服务类中保持为 null,从而在使用时导致 NullPointerException。

环境详细信息:

  • Glassfish 3.1
  • Netbeans 6.9 RC 2
  • Java EE 6

解决方案选项:

选项 1 :使用注入提供程序 SPI 进行注入

  • 实现执行 EJB 查找和注入的自定义注入提供程序。
  • 例如,在 Jersey 1.17 中:
import com.sun.jersey.core.spi.component.ComponentContext;
import ...
public class EJBProvider implements InjectableProvider<EJB, Type> {
    // Implementation details...
}
登录后复制

选项 2:将资源类转换为 EJB

  • 使 JAX-RS 资源类本身成为无状态 EJB,允许其管理自己的

选项 3:利用 CDI

  • 使用上下文和依赖注入 (CDI) 将 EJB 注入到 JAX-RS 资源类中.

示例:

@Path("book")
@RequestScoped
public class BookResource {
    @Inject
    private BookEJB bookEJB;
    // Implementation details...
}
登录后复制

其他资源:

  • [EJB 注入]( https://docs.oracle.com/javaee/7/api/javax/ejb/EJB.html)
  • [@EJB 注入](https://stackoverflow.com/questions/1130846/ejb-注入)
  • [将 REST 服务与 EJB 3.1 相结合](https://dzone.com/articles/combining-rest-services-with-ejb-31)
  • [EJB 3.1 和 REST - 轻量级混合](https://weblogs.java.net/blog/emcfarlane/archive/2009/12/10/ejb-31-and-rest-lightweight-hybrid)
  • [注入 EJB在战争中从 jar 到 jax-rs 类](https://stackoverflow.com/questions/6474811/injecting-an-ejb-from-a-jar-into-a-jax-rs-class-in-一场战争)

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板