使Toplink事件监听器类能够识别CDI

时间:2015-10-05 09:13:38

标签: java-ee dependency-injection cdi java-ee-6 toplink

我们使用Toplink 11(没有JPA)作为Java EE应用程序的持久性框架。 在Toplink配置文件sessions.xml中,我们定义了一个监听器类:

<event-listener-class>my.application.EventListener</event-listener-class>

这很有效,但现在我想通过CDI @Inject将依赖项注入此侦听器类。

并不奇怪,这不起作用,注入的对象是null。可能是因为Toplink自行实现了监听器类,绕过了CDI生命周期。

有没有办法让侦听器类具有CDI生命周期?
或者,我可以手动&#34;注入&#34; CDI将bean管理成一个类,例如在构造函数中?

1 个答案:

答案 0 :(得分:0)

在EntityListener中使用CDI的能力是introduced with JPA 2.1

根据this guide,自TopLink 12.1.3起可以启用JPA 2.1。是否可以将您的环境升级到该版本?

或者,将捆绑的eclipselink.jar文件更新为更新版本可能就足够了。

也许值得一看Apache CODIJBoss Seam