如何在osgi container之外调用osgi bundle的对象和方法

来源:互联网 发布:算法流程图模板 编辑:程序博客网 时间:2024/05/21 17:55

环境为Jboss7 + felix osgi

已经在jboss7中部署了一个osgi bundle, web应用没有打包成osgi,依然是普通的war,现在要解决的是想在war中调用这个osgi bundle的对象和方法。

解决方案:

bundle为BUNDLENAME-1.0.jar,注意Dependencies里要在名字BUNDLENAME前面加上deployment. 后面加上:1.0.0 (不是1.0!)

这样,在web应用里可以像引用普通jar里的对象方法一样来引用这个bundle里的对象方法。


pom.xml里做一下配置,这段配置的作用是在生成的war里面的META-INF/MANIFEST.MF中添加上Dependencies: BUNDLENAME:1.0.0这个header

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.1.1</version><configuration>  <failOnMissingWebXml>false</failOnMissingWebXml>  <archive>    <addMavenDescriptor>false</addMavenDescriptor><manifestEntries>      <Dependencies>deployment.BUNDLENAME:1.0.0</Dependencies>    </manifestEntries>  </archive>  <webResources><resource>  <directory>src/main/webapps</directory>  <excludes><!-- exclude>**/*.jar</exclude -->  </excludes></resource>  </webResources>  <packagingExcludes>WEB-INF/lib/*.jar</packagingExcludes></configuration>  </plugin>


原创粉丝点击