在注入实体管理器之前调用Bundle Activator

时间:2017-03-31 13:33:38

标签: java jpa osgi apache-karaf

我有一个持久性捆绑包(有一个Meta-Persistence),它还有一个Activator

部署到karaf后,容器会在调用persistence unit mapping files方法之前开始处理start& Activator等>

我的问题是:有没有办法改变这种行为?让容器先调用方法吗?

修改

我需要首先调用激活器的原因:

我有一些mapped entities依赖于jacksonspring本身依赖hibernate,当entities加载spring context时,会发生什么?在一个自制的课程中,在没有starting注入的情况下进行阻止。所以捆绑包永远处于Activator状态

所以我觉得可能的解决办法就是利用spring context注入error_log("\r\n debug " . implode("; ", $hc), 3, "errors.log"); // in case array error_log("\r\n print " . $im, 3, "errors.log");

谢谢

1 个答案:

答案 0 :(得分:1)

容器(或更准确地说是Aries JPA)必须在启动包之前开始处理持久性单元。

原因是Aries JPA在某些情况下需要进行加载时间编织。这种编织必须在被编织的类第一次被任何包加载之前完成。因此,唯一安全的时间是在捆绑解决后直接执行。