【问题标题】:Can not start bundle in Karaf, having grace period status无法在 Karaf 中启动捆绑包,处于宽限期状态
【发布时间】:2016-04-08 05:04:56
【问题描述】:

无法解析 karaf 中的捆绑包。 这里记录:

2016-04-08 05:01:02,323 | INFO  | h for user karaf | BlueprintContainerImpl           
| 17 - org.apache.aries.blueprint.core - 1.4.4 |
Bundle io.subutai.core.kurjun.impl/4.0.0.RC7-SNAPSHOT is waiting for dependencies 
[(&(&(!(org.apache.aries.jpa.proxy.factory=*))(osgi.unit.name=PU-KURJUN))(objectClass=javax.persistence.EntityManagerFactory))]

在这个模块中创建数据库,为此使用 openjpa。

【问题讨论】:

  • 这不是解决失败。您的捆绑包已启动,但您的蓝图容器在等待 EntityManagerFactory 服务出现时超时。

标签: osgi apache-karaf karaf


【解决方案1】:

这意味着您的包需要为您的持久性单元提供 EntityManagerFactory 服务。这可能有点难以追踪。

您必须检查您是否有一个定义此持久性单元的包,是否使用 Manifest 标头正确声明它,并且您是否定义了合适的 DataSource。

对于你得到的新错误,我认为问题在于你注入了一个 EnityManagerFactory 而我认为你需要注入一个 EntityManager。

【讨论】:

  • 已检查,我认为缺少包,如何添加到 Manifest 标头。我正在尝试在 apache felix 插件中添加 没有结果。
  • 看看我的模型包示例:github.com/cschneider/Karaf-Tutorial/tree/master/… .. 还可以查看上一级的父 pom。
  • @EricPro 不是缺少导入包;您的捆绑包正在解析并开始正常。
  • 您需要检查的第一件事是,在安装包含持久性单元的捆绑包时,您实际上获得了为其创建的 EntityManagerFactory 服务。您可以在 karaf 控制台上使用 service:list EntityManagerFactory 进行检查。
  • 似乎解决了等待依赖的问题@ChristianSchneider 检查我有持久性单元它的列表。现在有另一个问题。将在上面进行编辑。
猜你喜欢
  • 1970-01-01
  • 2021-08-08
  • 1970-01-01
  • 2018-10-31
  • 2012-03-14
  • 2021-04-23
  • 2022-08-14
  • 2019-02-05
  • 1970-01-01
相关资源
最近更新 更多