2013-11-01 46 views
0

所以我参与了一个使用Apache Karaf作为Web服务框架的项目。我们正在开发使用OSGi提供服务的捆绑软件。什么是OSGi DB访问的高级体系结构布局?

我只是想通过这些软件包了解数据库访问的高级体系结构,而且我无法通过Google搜索找到关于此的任何可靠信息 - 一切似乎都是分散的。

基本上我们使用的是JPA,Persistence Units(persistence.xml?)和DataSource。所有这些让我非常困惑。如果我有一个需要将东西写入数据库的“Hello World”包,那么这里的一般工作流程是什么?以及上述每个组件是如何使用的?这个架构的整体“图”是什么?什么是捆绑,什么不是?

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

+0

你应该看看工作彼得柯瑞恩斯在做什么。 http://blog.osgi.org/2013/08/the-perfect-osgi-persistence-model.html –

回答

1

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

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

难题的最后一部分是由白羊座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