【问题标题】:swing application and osgi felixSwing 应用程序和 osgi felix
【发布时间】:2011-12-11 20:08:33
【问题描述】:

我创建了一个非常简单的包:

public class Main implements BundleActivator, ServiceListener{

public void start(BundleContext bc) throws Exception {

    bc.addServiceListener(this);

    //trivial system out
    System.out.println("started");

    //output to file
    FileWriter fw = new FileWriter("test.txt");
    fw.write("it has worked");
    fw.close();

    //opening of a frame
    JFrame f = new JFrame();
    JLabel l = new JLabel("test");
    f.add(l);
    f.setVisible(true);
    f.pack();

}

(other methods with empty body)

我已经编辑了清单文件:

Bundle-Name: Service listener example
Bundle-Description: A bundle that displays messages at startup and whe service events occur
Bundle-Vendor: Apache Felix
Bundle-Version: 1.0.0
Bundle-Activator: tosgi01.Main
Import-Package: org.osgi.framework

我整理了所有这些东西,推出了 felix 并: 启动文件:testosgi.jar

它不会给出错误,但也不起作用。 有没有办法获得一些关于正在发生的事情的详细信息?

【问题讨论】:

标签: java osgi apache-felix


【解决方案1】:

首先,您在清单中错过了“Bundle-SymbolicName”标签,这是强制性的。

其次,Felix 有一个名为 Gogo 的控制台包,它可以帮助您了解您的包是否已启动。只需安装此捆绑包并写入控制台

lb

您将获得已安装捆绑包的列表。找到你的捆绑包,如果它处于“活动”状态,一切都很好。如果没有,请写

start <your_bundle_number>

并查看日志。

如果没有帮助,请在文件 conf/config.properties 中找到felix.log.level=1 行并将其更改为felix.log.level=4。您将在日志中看到启动包的整个过程。

【讨论】:

    【解决方案2】:

    在针对此类问题的众多调试选项中,Felix Web 控制台 [1] 是我的最爱。

    检查您的捆绑包是否处于活动状态,如果没有,请查看控制台捆绑包详细信息页面上的错误消息。如果您对 Swing 的东西有疑问,您也可以先将其删除,然后首先检查您的捆绑激活器是否确实被调用。

    [1]http://felix.apache.org/site/apache-felix-web-console.html

    【讨论】:

      【解决方案3】:

      我不是 100% 确定,但我认为您必须在清单中指定 Bundle-SymbolicName。 您还必须导入 javax.swing 包(等等)。这些包默认不可用。

      我们的应用程序的控制台中有很多输出,因此它不会忽略消息。对我来说,停止和启动有问题的捆绑通常会有所帮助。

      您还应该尝试一下控制台/shell,它提供了诊断捆绑包问题的工具。

      【讨论】:

      • +1 这是正确的,如果没有 SymbolicName 和 @chilicat.dev 状态,捆绑包将不会被注册;使用控制台命令让您更好地了解正在发生的事情。
      【解决方案4】:

      我不能直接帮助你,但万一你错过了:NetBeans 平台(基于 Swing 的 RCP)带有 OSGi 和 Apache Felix 支持:

      http://wiki.netbeans.org/OSGiAndNetBeans

      【讨论】:

      • 这很有趣,但我的应用程序应该只是围绕几个可插拔模块的容器。没有可停靠的窗口,没有工具栏,可能没有桌面窗格。
      猜你喜欢
      • 2016-10-03
      • 2012-03-08
      • 2016-03-08
      • 2015-04-28
      • 2014-05-22
      • 2018-05-14
      • 2010-11-12
      • 2012-07-20
      • 2010-11-04
      相关资源
      最近更新 更多