使用 Osgi 进行 Junit 测试不会启动 Jpa 组件
我们正在使用 OSGI 并想要编写 JUnit 系统测试。我们有一个组件,它使用 Java Persistence API (JPA) 与数据库进行交互。当我们启动测试时,我们收到一条错误消息,指出数据库组件无法激活。
我们认为,发生此错误是因为 jpa 找不到 persistence.xml。但我们尝试将文件复制到我们能想到的几乎所有可能的位置。每次都会发生同样的错误。有人知道解决办法吗?
osgi> 10:03:49.461 [组件解析线程] 调试 fdssystem.test.SystemTest - 已启动 错误 22 [SCR] 无法激活实例...
We're using OSGI and want to write a JUnit Systemtest. We have one component, that interacts with the database using the Java Persistence API (JPA). When we're launching the test, we get an error message, that the database component couldn't be activated.
We think, that this error occurs, because jpa doesn't find the persistence.xml. But we tried copying the file on quite every possible location we could think of. Everytime the same error occured. Does anybody know a solution?
osgi> 10:03:49.461 [Component Resolve Thread] DEBUG f.d.s.system.test.SystemTest - started
ERROR 22 [SCR] Cannot activate instance ...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没有名为bus.database的EntityManager的持久性提供程序
因此 CLASSPATH 中不存在 JPA 实现。显然取决于“bus.database”是否被指定为仅在特定的 JPA 实现(提供者)上运行。
No Persistence provider for EntityManager named bus.database
So there is no JPA implementation present in the CLASSPATH. Obviously depends if "bus.database" is specified to only run on a specific JPA implementation (provider).
尝试使用 Pax Exam 实施系统测试。您必须为您的测试定义所有必需的包(例如,JPA 实现包、您的组件等)。
Try to implement your system test with Pax Exam. You have to define all required bundles for your test (e.g. JPA implementation bundle, your component etc.).