在Apache Felix(v 4.2.1)Gogo shell上,不打印来自bundle的System.out.println

时间:2014-02-15 19:54:19

标签: osgi apache-felix osgi-bundle

免责声明:我是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),这也是无效的。

一定是一些小的配置/执行错误,但如果你们能指出我正确的方向,我们真的很感激。

感谢。

1 个答案:

答案 0 :(得分:0)

我弄明白了这个问题。捆绑包未正确安装,因为它们相应的jar文件没有META-INF目录条目。

他们有META-INF / MANIFEST.MF,但看起来Felix需要jar目录结构中的META-INF目录(它可能使用getResource方法来处理META-INF目录)。

Eclipse的导出jar不会创建此类条目(即使选择了“添加目录”选项)。所以我手动建造了罐子,他们正在工作。