从 JSF 托管 Bean 调用 @EJB

发布于 2024-08-02 01:00:15 字数 503 浏览 6 评论 0原文

我们正在使用 JDeveloper 11g。 Model 和 ViewController 项目都使用了 ADF fusion 等等。

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

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

我声明

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

当在方法中访问 this 时,locationServices 为 null。 我在控制台中没有看到任何 JNDI 类型问题, 所以我想它甚至懒得去查找。

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

请指教。 谢谢

We are using JDeveloper 11g.
Both a Model and ViewController project that makes use of ADF fusion and what not.

My web-xml has an EJB reference for a stateful session EJB .
I have a managed bean that's declared in faces-config.

I am trying to access a EJB from inside the managed bean.

I declare

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

When accessing this in a method, the locationServices is null.
I do not see any JNDI type problems in the console,
so I imagine that it's not even bothering to lookup.

Do I need to enable injection or something?
Or do I need to define 'locationServices' as managed property in my faces-config?

Please advise.
Thanx

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

相思故 2024-08-09 01:00:15

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

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

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

所以决定你想做什么。

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

You are confusing two different types of injection.

  1. There is EJB injection that happens among EJBs by the respective annotation. This type is handled by the EJB container (your application server or OpenEJB e.t.c)

  2. Then there is "normal" injection (ala Spring) that happens between normal Java beans
    and is defined in faces-config. This type is handled by JSF.

So decide what you want to do.

My proposal would be to download the official Java EE tutorial and skim through all topics.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文