在我的富客户端应用程序中,有一个设置可以更改服务器地址。当服务器地址更改时,我希望能够更改ECF查找远程服务(R-OSGI)的位置。看起来ECF支持两种通过WAN查找ECF服务器的机制:edef或zookeeper。我可以关心我使用哪一个,只要它工作,让我在不关闭应用程序的情况下更换服务器。
如何更改ECF在查找远程服务时使用的服务器地址?
答案 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中没有太多关于分布式服务的文档。