0

我们正在使用 JDeveloper 11g。使用 ADF 融合的 Model 和 ViewController 项目等等。

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

我正在尝试从托管 bean 内部访问 EJB。

我声明

@EJB (name ="LocationServicesEJB")
private LocationServicesEJB locationServices;

在方法中访问 this 时,locationServices 为空。我在控制台中没有看到任何 JNDI 类型问题,所以我想它甚至都不需要查找。

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

请指教。谢谢

4

1 回答 1

1

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

  1. 通过各自的注释在 EJB 之间发生 EJB 注入。此类型由 EJB 容器(您的应用程序服务器或 OpenEJB 等)处理

  2. 然后在普通 Java bean 之间发生“普通”注入(ala Spring),并在 faces-config.xml 中定义。这种类型由 JSF 处理。

所以决定你想做什么。

我的建议是下载官方 Java EE 教程并浏览所有主题。

于 2009-08-14T13:40:09.240 回答