解决OSGI无法安装外部JAR包的问题
** 关于这个问题网上大多采用通过Exlipse的BND插件将JAR包OSGI化的方式解决,这里提供一种工作中实践过的另一种解决方法。
先分析一下出现这个问题的原因,该问题是由OSGI的Bundle依赖导致的,OSGI(开放服务网关)是一套以Java为技术平台的动态模块化规范。Bundle是OSGI的基本单位,它是服务(Service)和组件(Component)的载体,通俗一点理解:Bundle就是模块。在OSGI中各个Bundle之间是相对独立、对外隔离的,因此,正常情况下它们是不能互相访问内部包的,需要通过OSGI的规范来配置各个Bundle才能实现Bundle之间的访问调用。实际上当我们通过Maven向OSGI导入一个外部的JAR包时,我们导入的这个JAR包需要被OSGI化,只有这样JAR包才能被OSGI识别并管理,下面是我解决问题所使用的配置:
在pom.xml中添加如下配置:
<!-- 先添加需要依赖的JAR包 -->
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.2</version>
</dependency>
<!-- 由BND来完成JAR包的OSGI化 -->
<build>