使用 Osgi 进行 Junit 测试不会启动 Jpa 组件

发布于 2024-08-23 23:23:49 字数 309 浏览 1 评论 0原文

我们正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

静谧幽蓝 2024-08-30 23:23:49

没有名为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).

甜扑 2024-08-30 23:23:49

尝试使用 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.).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文