当前位置: 首页 > 知识库问答 >
问题:

第三方库的一致OSGi导入

夏侯楷
2023-03-14

我一直在开发OSGi模块,但到目前为止,当我不得不包装现有的JAR时,我遇到了许多问题。这方面的一个例子是使用Oracle数据库驱动程序,尽管我已经将jar包装为bundle,但它仍然拒绝工作(即使它存在,也找不到驱动程序类)。这只是一个例子,但我遇到了其他第三方库的问题,我想知道是否有一种最佳实践方法来使用第三方库,每次都有效?

杰洛夫

共有1个答案

终弘厚
2023-03-14

您的例子中的问题是jdbc使用java运行时中的一个类来查找数据库驱动程序(DriverManager.GetConnection)。这无法工作,因为数据库驱动程序无法从系统classloader(加载DriverManager类)访问。

OSGi中的一种工作方式是使用数据源:http://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html。在这里,您只需使用new创建数据源,这当然有效。问题是它使您的用户包依赖于特定的DB驱动程序。因此,最佳实践是集中创建数据源并将其发布为服务。

您可以在我的Apache Karaf DB教程(http://www.liquid-reality.de/display/liquid/2012/01/13/Apache+Karaf+Tutorial+part+6+-+database+access)中找到更多细节。

 类似资料:
  • 本文向大家介绍Android Studio导入第三方类库的方法,包括了Android Studio导入第三方类库的方法的使用技巧和注意事项,需要的朋友参考一下 一、导入*.jar包 1.直接copy ①复制*.jar包,粘贴到主工程目录的libs下边 ②右键,将此jar包设置成自己的library ③然后在工程右键的选择项目单击Open Module Settings,在Dependencies中

  • 展开需要添加第三方库的工程,右键References->Add,会看到提供三种方式添加,分别是Global Assembly Cache、Browse、Solution。 <a>Global Assembly Cache: 在已经安装的.net framework中选择引入 <b>Browse: 通过文件浏览方式选择引入 <c>Solution: 添加项目方式引入 以添加.net framewor

  • 第三方库 ThinkCMF 内置了以下第三方库,如果你项目中需要增加其它第三库,也可以通过 composer自己安装,但以后升级应注意不要覆盖 vendor目录,而是使用 composer update去更新第三方库 "topthink/think-orm": "^2.0", "topthink/think-captcha": "^3.0",

  • 你们要爱惜光阴,用智慧与外人交往。你们的言语要常常带着和气,好像用盐调和,就可知道怎样回答各人。(COLOSSIANS 4:5-6) 第三方库 标准库的内容已经非常多了,前面仅仅列举几个,但是Python给编程者的支持不仅仅在于标准库,它还有不可胜数的第三方库。因此,如果作为一个Pythoner,即使你达到了master的水平,在做某个事情之前最好在网上搜一下是否有标准库或者第三方库替你完成。因为

  • 首先,我是一个OSGI新手:-) 谢了!

  • ThinkCMF第三方类库在simplewind/Core/Library/Vendor 如果你的第三方类库都放在Vendor目录下面,并且都以.php为类文件后缀,也没用采用命名空间的话,那么可以使用系统内置的vendor函数简化导入。例如,我们来导入二维码操作库phpqrcode,把 phpqrcode放到Vendor目录下面,这个时候phpqrcode主文件的路径就是 simplewind/