当前位置: 首页 > 知识库问答 >
问题:

与OSGi和Maven一起使用Hibernate

冯德佑
2023-03-14

我试图使用Maven将Hibernate添加为我的OSGi包的依赖项。在我的POM文件中,我有:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-osgi</artifactId>
    <version>4.3.6.Final</version>
</dependency>

但是,当我运行时,我得到了一个错误:

组织。奥斯基。框架BundleException:捆绑组织中未解决的约束。冬眠核心[8]:无法解决8.0:缺少要求[8.0]osgi。装电线。包裹(

所以我为javax添加了另一个依赖项。企业背景:

<dependency>
    <groupId>javax.enterprise</groupId>
    <artifactId>cdi-api</artifactId>
    <version>1.2</version>
</dependency>

解决了之前的错误,但导致了另一个错误:

自动属性安装:file:///path/to/project/hibernate/target/bundles/javax.inject-1.jar(org.osgi.framework.BundleException:无法创建捆绑包对象。-java.lang.IndexOutOfBoundsException)

现在,我无法解决这个问题,甚至无法找出原因。我使用ApacheFelix。

共有1个答案

支洋
2023-03-14

那不行。如果你想在OSGi中使用Hibernate,你需要一些在OSGi捆绑包中提供所需接口的捆绑包。对于您当前的用例,我建议您使用Karaf并安装ApacheAries的JPA/JTA特性。Karaf是一个OSGi容器,有很多依赖项,易于安装。要在JPA中使用Karaf,只需执行以下操作

features:install jpa
features:install jta
features:install hibernate

有了这个,您应该可以在osgi容器中使用hiberNate。另一种方法是安装所有必需的捆绑包来运行带有hiberNate和jpa/jta支持的蓝图osgi。要了解这些列表,请查看相应的功能文件。在Karaf可用

 类似资料:
  • 问题内容: 我有一个Maven OSGi多模块项目。当OSGi从各个项目模块中选择模块jar时,该项目将运行良好。 (请参见下面的1.1.B) 。 但是,使用第二种方法,每当我尝试使用通过maven-assembly- plugin版本2.6 放置到中央文件夹 (D:/ parent / provider / target / modules)* 中的捆绑包时, (请参见下面的1.1.A)都 将返

  • 我正在使用maven-shade-plugin在构建的包阶段重新定位一些包。我还使用maven-bundle-plugin生成一个清单。问题是bundle插件在shade插件之前运行(在过程类阶段),并且在生成的清单的导出中没有包含任何我的shade包。 -- 根据要求,我的POM的阴影和捆绑部分: 从这里取的

  • 我有一个基于android bootstrap的项目。我按照所有步骤使用android studio将google-play-services\u lib添加到项目中。我在工作室制作的作品很棒。当我在手机上安装应用程序时,它会因此错误而死亡 08-02 11:49:26.863 22719-22719/com。唐费尔克。Android引导程序E/AndroidRuntime:致命异常:主java。

  • 我想在java模块中使用CDI功能。我希望我的代码保持泛型,不依赖于特定的实现。 我使用Java11和Maven3.6.0。 为了简单起见,我的目标被简化为在java文件中导入包。当我在没有module(没有)的情况下这样做时,每件事都能正常工作。 我的理解是,CDI库应该采用一个受jar文件名称启发的自动模块名称。当我使用指令运行maven时,我在类路径中看到。我相信,如果我错了,请更正,这应该

  • 我想用Kotlin生成一些uuid4s。我使用Maven管理我的项目,实际上我对Kotlin和Maven都很陌生。 我看到有一个名为的Kotlin库可以满足我的需要。我在https://mvnrepository.com上找到了依赖项片段,并将其添加到pom.xml中的依赖项: 我放了: 在我的Kotlin.tk源文件的开头(我在Github上看到,有些人就是这样使用这个包的)。但当我这样做时:

  • =>如何正确地将log4j作为Java9的一个模块依赖项包含进来? (我对以下依赖项有相同的问题:需要Hibernate.core;需要Hibernate.jpa.2.1.api;需要JCommander;需要JUnit;需要Reflections;) 到目前为止我所做的: 更新了pom.xml文件中的log4j版本,因为log4j 1.2似乎不能与Java9一起工作(请参阅https://blo