从JSF托管Bean调用@EJB

从JSF托管Bean调用@EJB,jsf,ejb-3.0,jdeveloper,oracle-adf,Jsf,Ejb 3.0,Jdeveloper,Oracle Adf,我们正在使用jdeveloper11g。 模型和ViewController项目都使用了ADF fusion等等 我的web xml有一个状态会话EJB的EJB引用。 我有一个在faces配置中声明的托管bean 我试图从托管bean内部访问EJB 我宣布 @EJB (name ="LocationServicesEJB") private LocationServicesEJB locationServices; 在方法中访问时,locationServices为null。 我在控制台中没有

我们正在使用jdeveloper11g。 模型和ViewController项目都使用了ADF fusion等等

我的web xml有一个状态会话EJB的EJB引用。 我有一个在faces配置中声明的托管bean

我试图从托管bean内部访问EJB

我宣布

@EJB (name ="LocationServicesEJB")
private LocationServicesEJB locationServices;
在方法中访问时,locationServices为null。 我在控制台中没有看到任何JNDI类型的问题, 所以我想它甚至懒得查找

我需要启用注入还是什么? 或者我是否需要在faces配置中将“locationServices”定义为托管属性

请告知。
Thanx

您混淆了两种不同类型的注射

  • EJB注入是通过各自的注释在EJB之间进行的。此类型由EJB容器(应用程序服务器或OpenEJB e.t.c)处理

  • 然后是在普通Javabean之间发生的“正常”注入(AlaSpring) 并在faces配置中定义。这种类型由JSF处理

  • 所以决定你想做什么


    我的建议是下载并浏览所有主题。

    thanx,很抱歉现在才回复。但你是对的。我会考虑教程…是adf的东西害死了我这个答案中的链接现在断了,你能修改它吗?@kazanaki我很困惑。我们不能(从JSF)将EJB bean注入(A)ManagedBean吗?在这个例子中,它成功地完成了吗?在JavaEE5中是不可能的。在JavaEE6中,他们引入了CDI(受Seam启发),您可以在其中向任何对象注入任何对象。当问到最初的问题时,大多数人都使用JavaEE5