jsf - 使用 JEE6 将 EJB 注入(inject) JSF 转换器

标签 jsf dependency-injection jakarta-ee glassfish ejb-3.0

这个问题在这里已经有了答案:





How to inject @EJB, @PersistenceContext, @Inject, @Autowired, etc in @FacesConverter?

(5 个回答)


6年前关闭。




我有一个可以访问我的数据库的无状态 EJB。
我需要 JSF 2 转换器中的这个 bean 来从 String 值参数中检索实体对象。我将 JEE6 与 Glassfish V3 一起使用。
@EJB注释不起作用并获得 NPE,因为它在 faces 上下文中并且无法访问 EJB 上下文。

我的问题是:
是否仍然可以使用 @Resource 注入(inject)此 bean?或其他注释,或 JNDI 查找,还是我需要解决方法?

解决方案

像这样进行 JNDI 查找:

  try {
   ic = new InitialContext();
   myejb= (MyEJB) ic
     .lookup("java:global/xxxx/MyEJB");   
  } catch (NamingException e) {
   e.printStackTrace();
  }

最佳答案

我从未使用过 JSF 2.0(只有 1.0),但规范的第 5.4 章说:

[...] allow the container to inject references to container managed resources into a managed bean instance before it is made accessible to the JSF application. Only beans declared to be in request, session, or application scope are eligble for resource injection.



但到目前为止,我了解,JNDI 查找应该可以解决问题。

关于jsf - 使用 JEE6 将 EJB 注入(inject) JSF 转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2019495/

相关文章:

ajax - 如何在 Ajax Listener 中获取 SelectBooleanCheckbox 的状态?

JSF 中的 Java 上传文件名土耳其语字符问题 - Primefaces

java - 迁移到具有功能丰富但更兼容的库的新版本 JSF

java - 将测试类和配置类合并在一个类中?

java - 我应该如何构建 jsps 使用的资源包属性文件?

javascript - 调用 f :selectitems 的 Javascript 函数 onchange

oop - 是否有常用的 OO 模式来保存 "constant variables"?

Java 从现有依赖项调用未知代码或方法

java - 死连接返回到 JDBC 连接池 - Glassfish 3.1.2.2

java - 没有原始属性的复合主键