相关疑难解决方法(0)

我怎样才能注入@FacesConverter?

我写了一个转换器.我正在使用CDI和注入并行.在这种情况下,不会注入类.如何使注射成为可能?

@FacesConverter(forClass = MyClass.class)

public class MyConverter implements Converter{

    @EJB
    private ClassForEJB classForEJB;

    @Inject
    private ClassForInject classForInject;

// Converter Methods
}
Run Code Online (Sandbox Code Playgroud)

jsf dependency-injection java-ee cdi

14
推荐指数
1
解决办法
1万
查看次数

使用JEE6将EJB注入JSF转换器

我有一个无状态的EJB加入我的数据库.我需要在JSF 2转换器中使用此bean来从String值参数中检索实体对象.我正在使用JEE6和Glassfish V3.

@EJB 注释不起作用并获得NPE,因为它位于faces上下文中,并且它无法访问EJB上下文.

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


像这样执行JNDI查找:

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

jsf dependency-injection glassfish java-ee ejb-3.0

12
推荐指数
1
解决办法
1万
查看次数

@Inject仅适用于CDI容器创建的POJO?

我只想确认我完全理解CDI工作的先决条件.如果我有A班:

public class A {
    @Inject private B b;
}
Run Code Online (Sandbox Code Playgroud)

现在,当我使用以下方法实例化此类时:

A a = new A();
Run Code Online (Sandbox Code Playgroud)

在这种情况下,Ab将为null.

但是如果我在另一个类中定义一个成员:

@Inject A a;
Run Code Online (Sandbox Code Playgroud)

以后使用a,ab会被正确填充吗?

CDI仅在需要注射的类也由CDI容器创建时才起作用吗?或者,如果使用普通的实例化创建一个POJO时,如果注射结果为null,我会错过什么(是的,我得到了beans.xml)?

java java-ee cdi java-ee-6

9
推荐指数
2
解决办法
1万
查看次数

标签 统计

java-ee ×3

cdi ×2

dependency-injection ×2

jsf ×2

ejb-3.0 ×1

glassfish ×1

java ×1

java-ee-6 ×1