【问题标题】:JBoss Fuse Hibernate integrationJBoss Fuse Hibernate 集成
【发布时间】:2016-12-13 04:47:44
【问题描述】:

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

我注意到应该在骆驼上下文文件中配置休眠,但不幸的是,当我添加这种配置时,我遇到了以下错误。当我尝试将我的应用安装到 Fuse 时。

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>

【问题讨论】:

    标签: java spring hibernate maven jbossfuse


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-05-12
      • 1970-01-01
      • 2015-07-20
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多