新建三个插件:ServerAdviser(服务提供插件,只定义接口),ServerImpl(服务实现插件,实现接口),Client(客服端插件,调用服务)
1.ServerAdviser:Target Platform选择:Eclipse version:选项.Options中去掉创建Activator选项.创建RCP选项选择No.定义接口serverAdviser.service.IService.java后,打开MANIFEST.MF--Dependencies--Requireed Plug-ins选项要导入org.eclipse.ui/org.eclipse.core.runtime,Runtime--Exported Packages选项导出包serverAdviser.service
2.ServerImpl:创建同上,只是Options中勾选上创建Activator选项.打开MANIFEST.MF--Dependencies--Imported Packages选项导入包serverAdviser.service.另外创建类ServerImpl实现接口.在Activator类的start方法中注册服务serviceReg=context.registerService(IService.class.getName(), new ServerImpl(), null);stop方法中serviceReg.unregister();
3.Client:创建同上,只是创建RCP选项选择Yes.在Activator类的start方法中得到服务service=(IService) context.getService(context.getServiceReference(IService.class.getName()));得到接口对象就可以调用了.
4.启动RCP插件:Eclipse Application选项新建一个Client.application启动,右边Plig-ins选项中把三个插件都要勾选上,其它平台上必要的插件也要勾上.
5.在启动插件工程中创建aaaa.product文件.通过aaaa.product运行时出现异常:org.osgi.framework.BundleException: Exception in client.Activator.start() of bundle Client.--这是因为依赖的插件没有启动.打开aaaa.product---Dependencies选项--增加插件ServerAdviser(可能已有)/ServerImpl,Configuration选项中增加ServerImpl插件,并设置Auto-Start选项为true就行了.
6.aaaa.product---Overview选项单击Eclipse Product export wizard可以导出独立运行的插件.