更改ECF在查找远程服务时使用的服务器地址?

时间:2011-04-19 23:26:37

标签: eclipse-ecf

在我的富客户端应用程序中,有一个设置可以更改服务器地址。当服务器地址更改时,我希望能够更改ECF查找远程服务(R-OSGI)的位置。看起来ECF支持两种通过WAN查找ECF服务器的机制:edef或zookeeper。我可以关心我使用哪一个,只要它工作,让我在不关闭应用程序的情况下更换服务器。

如何更改ECF在查找远程服务时使用的服务器地址?

1 个答案:

答案 0 :(得分:1)

查看OSGi Configuration Admin,您可以在执行时修改组件属性(例如,您可以修改DS.xml中存在的服务的属性):

Configuration conf = configAdmin.getConfiguration("YourComponentName");

Dictionary dict = conf.getProperties();
//check things or whatever
dict = new Hashtable();
dict.put("service.exported.interfaces", "*");
dict.put("service.exported.configs", "ecf.generic.server");
dict.put("ecf.exported.containerfactoryargs", "ecftcp://localhost:3789/server");

conf.update(dict);

之后,我必须从命令行重启组件,让ECF创建容器:

disable yourComponentID
enable yourComponentID

我仍然不知道如何自动完成此部分。我仍在调查配置管理和远程服务管理员。如果您或其他人可以提供帮助,那就太好了;)

我也对你的问题感兴趣。我认为在WAN中没有太多关于分布式服务的文档。