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

Java 在注入实体管理器之前调用Bundle Activator,java,jpa,osgi,apache-karaf,Java,Jpa,Osgi,Apache Karaf,我有一个持久性捆绑包(有一个元持久性),它还有一个激活器类 当部署到karaf中时,容器在调用Activator的start方法之前,开始处理持久化单元和映射文件等 我的问题是:有没有办法改变这种行为?让容器先调用方法 编辑 我需要首先调用activator的原因: 我有一些映射的实体,它们依赖于jackson,jackson本身依赖于spring,发生的是,当hibernate加载实体时,它到达一个自制的类,该类会阻塞,而没有spring上下文被注入其中。因此,捆绑包永远处于启动状态 因此,我

我有一个持久性捆绑包(有一个
元持久性
),它还有一个
激活器

当部署到
karaf
中时,容器在调用
Activator的
start
方法之前,开始处理
持久化单元
映射文件

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

编辑 我需要首先调用activator的原因:

我有一些
映射的实体
,它们依赖于
jackson
,jackson本身依赖于
spring
,发生的是,当
hibernate
加载
实体时,它到达一个自制的类,该类会阻塞,而没有
spring上下文
被注入其中。因此,捆绑包永远处于
启动状态

因此,我认为一个可能的解决方案是使用
Activator
注入
spring上下文

谢谢

容器(或者更准确地说,Aries JPA)必须在启动捆绑包之前开始处理持久化单元


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

您希望首先运行Activator有什么特殊原因吗?我在原始postJackson中添加了一个原因,它通常不需要spring。或者尝试直接从实体公开REST服务。。我宁愿不这样做。所以这看起来像是鸡和蛋的事情,有什么建议吗?一般来说,在实体类中使用依赖注入是一个大问题。我会尝试在一个只使用实体的服务类中提取该功能,最后创建了另一个bundle来创建上下文并将其导出,从而解决了问题