Jakarta ee 使Toplink事件侦听器类CDI知晓
我们使用Toplink11(无JPA)作为JavaEE应用程序的持久性框架。 在Toplink配置文件Jakarta ee 使Toplink事件侦听器类CDI知晓,jakarta-ee,dependency-injection,cdi,java-ee-6,toplink,Jakarta Ee,Dependency Injection,Cdi,Java Ee 6,Toplink,我们使用Toplink11(无JPA)作为JavaEE应用程序的持久性框架。 在Toplink配置文件sessions.xml中,我们定义了一个侦听器类: <event-listener-class>my.application.EventListener</event-listener-class> my.application.EventListener 这很好,但现在我想通过CDI@inject将依赖项注入这个侦听器类 毫不奇怪,这不起作用,注入的对象是null
sessions.xml
中,我们定义了一个侦听器类:
<event-listener-class>my.application.EventListener</event-listener-class>
my.application.EventListener
这很好,但现在我想通过CDI@inject
将依赖项注入这个侦听器类
毫不奇怪,这不起作用,注入的对象是null
。可能是因为Toplink绕过CDI生命周期,自行建立侦听器类
有没有办法让侦听器类与CDI生命周期同步?或者,我是否可以手动将CDI管理的bean“注入”到类中,例如在构造函数中?在EntityListener中使用CDI的能力是有限的 根据,JPA2.1可以从TopLink 12.1.3开始启用。是否可以将您的环境升级到该版本 或者,只需将捆绑的eclipselink.jar文件更新到新版本就足够了
它可能也值得一看。谢谢你的指点。目前无法升级Toplink。CODI和Seams似乎专注于JSF和web堆栈。我们将JavaEE与EJB一起使用,远程调用没有web层。在这种情况下,您是否尝试升级到更新版本的eclipselink.jar?我目前无法验证这一点,但它应该与您正在使用的旧版本TopLink向后兼容。我会记住这一点作为解决方案,谢谢。这些核心库中的主要版本更改必须在此处小心处理(测试…)