java – 如何将数据库驱动程序发布为OSGi包
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何将数据库驱动程序发布为OSGi包,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1604字,纯文字阅读大概需要3分钟。
内容图文
![java – 如何将数据库驱动程序发布为OSGi包](/upload/InfoBanner/zyjiaocheng/893/3bfbdaad122542bdacf0a04963f07e61.jpg)
我有两个或更多非特定的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驱动程序生成自己的bundle.
>将驱动程序部署到Maven存储库.
>使用osgi:install -s wrap:mvn:group / artifact / version将驱动程序加载到Fuse中.
这不够好.仅当JDBC驱动程序是OSGi中安装的唯一冲突驱动程序时,它才有效.
我能说的最好,我所描述的问题是OSGi创建的问题.因此,我相信有一个解决方案.
我愿意竭尽全力解决这个问题(缺乏硬编码,与通用实施不同),因为迄今为止付出的投资和解决方案所需的服务.
解决方法:
在OSGi中使用JDBC驱动程序的正确方法是实现the JDBC service.这很容易实现,因为代码几乎完全是通用的.
DataSourceFactory接口有四种生成方法
>司机
> DataSource
> ConnectionPoolDataSource
> XADataSource
如果您的工厂无法提供这些类型中的一个或多个,则抛出SQLException是完全合理的.
然后,您的DataSourceFactory实现包应该包装JDBC驱动程序jar(例如,如果它还不是OSGi包),或者从JDBC驱动程序导入必要的包,以便它可以实现DataSourceFactory方法(例如,如果驱动程序已经有OSGi元数据,但没有提供必要的服务).然后应将DataSourceFactory注册为服务,可以使用bundle activator(H2 does this)或使用Declarative Services之类的容器轻松实现.此服务使用服务属性通告它提供的驱动程序类以及版本和供应商信息.
可以使用相同的模板项目为同一驱动程序的不同版本生成多个不同的包,或者通过更改引用的实现.使用诸如bnd-maven-plugin之类的工具将确保您的OSGi元数据正确无误.
已经有一些项目,例如PAX-JDBC,它们试图为JDBC驱动程序提供这些类型的包装器.
内容总结
以上是互联网集市为您收集整理的java – 如何将数据库驱动程序发布为OSGi包全部内容,希望文章能够帮你解决java – 如何将数据库驱动程序发布为OSGi包所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。