1

这就是我想要做的:我有一个服务器和一个客户端应用程序,它们通过 Web 服务 (SOAP) 进行通信。

客户端是一个 Eclipse RCP 应用程序,它使用来自 Apache CXF 的 DOSIG 包。如本教程中所述,我使用了声明性服务和 BundleActivator:http: //cxf.apache.org/dosgi-ds-demo-page.html

我通过为 Apache CXF 包添加自动启动条目让客户端与服务器连接。问题是这会显着减慢启动速度,因为 Apache CXF 需要一段时间来设置服务和所有内容。只有当 Apache CXF 包完全启动时,我的 UI 才会出现。

我希望在 Apache CXF 包完成启动之前显示 UI。我不会立即需要 Web 服务,并且无论如何都必须处理丢失的 Web 服务。所以我希望我的 UI 显示出来,然后在 web 服务可用时激活功能。

所以我的问题是:

  1. 这种方法有意义吗?
  2. 我该如何实施?我想我必须从正在运行的应用程序启动 cxf 包?
4

1 回答 1

3

您可以使用以下方式启动插件(捆绑):

final Bundle bundle = Platform.getBundle(id);
if (bundle != null)
 {
   if ((bundle.getState() & Bundle.ACTIVE) == 0)
    {
      try
       {
         bundle.start(Bundle.START_TRANSIENT);
       }
      catch (final BundleException ex)
       {
         // Handle error
       }
    }
 }
于 2013-09-10T15:04:10.980 回答