【问题标题】:Junit test with Osgi doesn't start the Jpa component使用 Osgi 的 Junit 测试不会启动 Jpa 组件
【发布时间】:2011-01-23 14:55:44
【问题描述】:

我们正在使用 OSGI 并想编写一个 JUnit Systemtest。我们有一个组件,它使用 Java Persistence API (JPA) 与数据库交互。当我们启动测试时,我们收到一条错误消息,即无法激活数据库组件。

我们认为,发生此错误是因为 jpa 没有找到 persistence.xml。但我们尝试将文件复制到我们能想到的几乎所有可能的位置。每次都发生同样的错误。有人知道解决办法吗?

osgi> 10:03:49.461 [组件解析线程] 调试 f.d.s.system.test.SystemTest - 已启动 ERROR 22 [SCR] 无法激活实例...

【问题讨论】:

    标签: java jpa junit osgi


    【解决方案1】:

    没有名为 bus.database 的 EntityManager 的持久性提供程序 因此 CLASSPATH 中不存在 JPA 实现。显然取决于“bus.database”是否被指定为仅在特定的 JPA 实现(提供者)上运行。

    【讨论】:

    • 你的 CLASSPATH 是什么意思?我们必须在那里输入哪些文件?感谢您的快速答复
    • Java 应用程序中只有一个 CLASSPATH。好的,OSGi 环境对类加载有特殊处理,但无论如何。什么罐子?您选择使用的 Jpa 实现? DataNucleus、EclipseLink、Hibernate、OpenJPA 等等。
    【解决方案2】:

    尝试使用Pax Exam 实施您的系统测试。您必须为您的测试定义所有必需的包(例如 JPA 实现包、您的组件等)。

    【讨论】:

      猜你喜欢
      • 2012-08-17
      • 1970-01-01
      • 2016-05-15
      • 2017-04-29
      • 1970-01-01
      • 2015-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多