【发布时间】:2018-10-19 14:18:57
【问题描述】:
我有两个或更多非特定的 JDBC 驱动程序。我希望在 OSGi 容器中使用它们。一些驱动程序来自同一个第三方,只有版本差异和一个或多个冲突类,包括驱动程序类和连接 URL。
解释如何从这些包中创建一个 OSGi 包。
我正在使用 JBoss Fuse 6.2.1.redhat-117、Red Hat JBoss Developer Studio 10.4.0.GA(带有 Fuse 集成的 Eclipse)、Maven 3.3.9、Eclipse Maven 集成、Windows 7。
我尝试使用两步过程为每个 JDBC 驱动程序生成我自己的包。
- 将驱动程序部署到 Maven 存储库中。
- 使用 osgi:install -s wrap:mvn:group/artifact/version 将驱动程序加载到 Fuse。
这还不够好。仅当 JDBC 驱动程序是安装到 OSGi 中的唯一一个冲突驱动程序时,它才能工作。
据我所知,我所描述的问题是 OSGi 旨在解决的问题。因此,我相信有一个解决方案。
我愿意不遗余力地解决这个问题(缺乏硬编码,与通用实施不同),因为到目前为止已支付投资以及解决方案所需的服务。
【问题讨论】:
-
您必须确保每个驱动程序包都以不同的版本导出其包。
标签: java jdbc osgi jbossfuse fuseesb