这就是我想要做的:我有一个服务器和一个客户端应用程序,通过webservices(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。我不会立即需要webservices,无论如何都必须处理丢失的webservices。因此,我希望我的UI显示,然后在Web服务可用时激活功能。
所以我的问题是:
答案 0 :(得分: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
}
}
}