免责声明:我是OSGi的全新手,而Felix则是particular。对于我这次犯下的任何愚蠢错误,我深表歉意,但如果你能指出一个错误,我真的很感激。
我已经下载了Apache Felix v4.2.1并开始运行它,如http://felix.apache.org/documentation/subprojects/apache-felix-framework/apache-felix-framework-usage-documentation.html指南
所述还按照给定的教程开发了示例服务侦听器包,字典包和字典客户端(参考:http://felix.apache.org/documentation/tutorials-examples-and-presentations/apache-felix-osgi-tutorial/apache-felix-tutorial-example-1.html)
我能够使用felix:start命令在Felix中成功安装并启动它们。以下是felix:lb命令的输出,
START LEVEL 1
ID|State |Level|Name
0|Active | 0|System Bundle (4.2.1)
1|Active | 1|Apache Felix Bundle Repository (1.6.6)
2|Active | 1|Apache Felix Gogo Command (0.12.0)
3|Active | 1|Apache Felix Gogo Runtime (0.10.0)
4|Active | 1|Apache Felix Gogo Shell (0.10.0)
5|Active | 1|file:/home/dev/experiments/osgi/workspace/FirstProj/dist/firstproj.jar (0.0.0)
6|Active | 1|file:/home/dev/experiments/osgi/workspace/SecondProj/dist/dictionary.jar (0.0.0)
7|Active | 1|file:/home/dev/experiments/osgi/workspace/ThirdProj/dist/dictionary_client.jar (0.0.0)
但是我的捆绑包都没有在控制台上输出任何东西,第7个捆绑包(dicionary_client)也需要输入(使用System.in),这也是无效的。
一定是一些小的配置/执行错误,但如果你们能指出我正确的方向,我们真的很感激。
感谢。
答案 0 :(得分:0)
我弄明白了这个问题。捆绑包未正确安装,因为它们相应的jar文件没有META-INF目录条目。
他们有META-INF / MANIFEST.MF,但看起来Felix需要jar目录结构中的META-INF目录(它可能使用getResource方法来处理META-INF目录)。
Eclipse的导出jar不会创建此类条目(即使选择了“添加目录”选项)。所以我手动建造了罐子,他们正在工作。