java - JBoss Fuse Hibernate 集成

标签 java spring hibernate maven jbossfuse

我尝试在 FUSE 中开发简单的 Hibernate 集成应用程序,但找不到可以遵循的良好引用文档。我已经浏览过official documentation关于 Hibernate 集成,但无法正确安装依赖项。

我注意到 hibernate 应该在 Camel 上下文文件中配置,但不幸的是,当我添加这种配置时,我收到以下错误。当我尝试将我的应用程序安装到 Fuse 时。

enter image description here

Error executing command: Error installing bundles:
    Unable to start bundle mvn:com.activemq.cxf/activemq/1.0.0-SNAPSHOT: Unresolved constraint in bundle DemoActiveMq1 [416]: Unable to resolve 416.0: missing requirement [416.0] osgi.wiring.package; (&(osgi.wiring.package=org.springframework.orm.hibernate3)(version>=3.0.0)(!(version>=4.0.0))) [caused by: Unable to resolve 415.0: missing requirement [415.0] osgi.wiring.package; (&(osgi.wiring.package=org.springframework.dao)(version>=3.0.5)(!(version>=3.0.6)))]

但我检查 org.springframework.dao 没有可用的 3.0.5 版本。根据this post仅适用于 2.0.8 。请有人解释一下如何解决这个问题?

以下是我的pom中与Hibernate相关的依赖项(${spring-version}== 3.0.5.RELEASE)

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>${spring-version}</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>${spring-version}</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-tx</artifactId>
  <version>${spring-version}</version>
</dependency>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
  <version>${spring-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-dao</artifactId>
    <version>2.0.8</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
    <version>${spring-version}</version>
</dependency>

最佳答案

我自己不使用 Fuse,可能它有什么特别之处。然而,在您的问题中,对于 OSGi 如何工作存在一个常见的误解。它提示的 org.springframework.dao 不是一个 Artifact ,而是 java 包。该包可以由任何 Artifact 提供。谷歌搜索显示,自版本 2.5.x 起,该软件包已移至 spring-tx人工制品。我的猜测是,将其添加到您的依赖项中和/或将其部署在您的 OSGi 环境中应该可以解决问题。由于 Fuse 使用 Karaf,您可能可以使用 Karaf 的功能进行安装。

关于java - JBoss Fuse Hibernate 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41113918/

相关文章:

spring - 使用 ControllerClassNameHandlerMapping 发现模糊映射

hibernate - 仅对对象使用 JPQL 选择列的子集

java - 与延迟加载一对一关系的 n+1 问题

java - ScheduledExecutorService 按 1 分钟计划执行 10 分钟(systemd - 日志故障)

java - SharedPreferences 数据分布在每个 fragment 上

spring - 配置文件特定属性与环境变量

java - @Scheduled 和 @Transactional 方法中的 Spring-data-jpa 延迟加载

java - maven依赖无法导入

java - 如何使用 GoogleAppEngine 创建表

java - 如何使用hibernateTemplate获取多个HQL的EntityObject