我们使用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管理成一个类,例如在构造函数中?
答案 0 :(得分:0)
在EntityListener中使用CDI的能力是introduced with JPA 2.1。
根据this guide,自TopLink 12.1.3起可以启用JPA 2.1。是否可以将您的环境升级到该版本?
或者,将捆绑的eclipselink.jar文件更新为更新版本可能就足够了。
也许值得一看Apache CODI或JBoss Seam。