如何直接在OSGI bundle jar文件中使用该类?

时间:2014-09-15 01:07:18

标签: java maven osgi

在我们的系统中,一些类被打包为OSGI bundle jar文件。这些jar文件将在支持OSGI的Glassfish服务器中使用。

我想编写一个测试客户端代码来调用这些bundle jar文件中的一些方法。但我不想使用Glassfish。我只想使用Tomcat或Jetty。

我们正在使用Maven来管理依赖项。捆绑pom就像:

<artifactId>oursystem-name-biz</artifactId>
<packaging>bundle</packaging>
<name>oursystem-name-biz</name>

是否可以在OSGI支持下使用这些捆绑的jar文件?

1 个答案:

答案 0 :(得分:2)

取决于。

是的,您可以在标准Java类路径上放置一个包并从中加载类,但前提是这些类位于jar的根目录中。

但是,OSGi支持Bundle-Classpath的概念,并且(如Java类路径)是将在bundle中搜索的路径。这意味着您可以创建要搜索的位置列表,例如jar中的特定子目录或jar中嵌入的jar。如果你将jar放在Java类路径上,那么这些都不受支持,所以如果这是你的目标,请确保避免使用Bundle-Classpath。