【问题标题】:Changing the server address ECF uses when it looks up remote services?更改 ECF 在查找远程服务时使用的服务器地址?
【发布时间】:2011-04-19 23:26:36
【问题描述】:

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

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

【问题讨论】:

    标签: eclipse-ecf


    【解决方案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 中的分布式服务的文档。

    【讨论】:

    • 谢谢!这很有帮助。如果我弄清楚如何在运行时启用和禁用组件,我会将其发布在 cmets 中。
    • 您最终是否使用了 ConfigurationAdmin 并设法禁用和启用组件?不久前我已经回到这个问题上工作了。
    猜你喜欢
    • 1970-01-01
    • 2015-09-05
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 2015-01-08
    • 2012-05-15
    相关资源
    最近更新 更多