【发布时间】:2014-02-25 12:44:31
【问题描述】:
我有一个 J2EE 应用程序,我将其转换为在 Websphere Liberty Profile (WLP) 上运行。我特别想注入我的 EJB 引用。
我的 WLP 服务器配置了 ejb-lite、托管 bean 和 cdi 功能。我在 WEB-INF 目录中放置了 beans.xml 文件,并将操作类注释为 @ManagedBean,并添加了带有日志记录的 @PostConstruct 和 @PreRemove 方法以查看是否正常工作。我从来没有看到我的 @PostConstruct 和 @PreRemove 方法被调用
我已经尝试了一些方法来使注入工作,包括@Inject 和具有不同参数的各种风格的@EJB。似乎没有任何效果。我没有收到任何错误,但没有迹象表明正在进行任何注释处理。当我直接进行 JNDI 查找以获取 ejb 时,它工作正常。
我读过的所有内容都表明这个应该工作,但我不知道为什么它不工作。
【问题讨论】:
-
我的猜测是您的 JSF 托管 bean 并没有真正被视为 JSF 托管 bean,或者您没有以容器提供的方式访问它——所以它没有得到注射服务。我会专注于这方面。
-
我没有使用 JSF,我正在尝试使用 J2EE 6 的托管 beans/CDI 功能。但是,经过大量实验,我认为您是对的。
标签: java jakarta-ee cdi managed-bean websphere-liberty