0

所以我参与了一个使用 Apache Karaf 作为 Web 服务框架的项目。我们正在使用 OSGi 开发包来提供服务。

我只是想了解这些捆绑包访问数据库的高级架构,我无法通过谷歌搜索找到任何可靠的信息——一切似乎都是零散的。

基本上我们使用 JPA、持久性单元 (persistence.xml?) 和数据源。所有这些都让我很困惑。如果我有一个需要将内容写入数据库的“Hello World”包,这里的一般工作流程是什么,以及如何使用上述每个组件?这个架构的整体“图表”是什么?什么是捆绑,什么不是?

我对 JAVA 很陌生,现在有很多事情要跟踪,所以希望在这里得到一些帮助!提前致谢!

4

1 回答 1

1

首先要解决的是对 db 驱动程序的抽象。由于类加载,使用 DriverManager.getConnection 的默认 Java 方法在 OSGi 中效果不佳。它可以通过将 DataSource 作为 OSGI 服务提供和使用来解决。

接下来就是设置JPA。Aries JNDI 支持这一点,它允许在 peristence.xml 中使用 jndi 来引用 DataSource OSGi 服务。

难题的最后一部分是 aries JPA 支持的容器管理持久性。

您可以在下面找到显示所有这些概念的教程。演示项目 examplejpa 展示了它们是如何协同工作的。

http://liquid-reality.de/display/liquid/2012/01/13/Apache+Karaf+Tutorial+Part+6+-+Database+Access

https://github.com/cschneider/Karaf-Tutorial/tree/master/db/examplejpa

于 2013-11-01T22:01:56.770 回答