1

私のリッチ クライアント アプリケーションには、サーバー アドレスを変更する設定があります。サーバーアドレスが変更されたときに、ECF がリモートサービス (R-OSGI) を検索する場所を変更できるようにしたいと考えています。ECF は、WAN 経由で ECF サーバーを見つけるための 2 つのメカニズムをサポートしているようです: edef または Zookeeper です。機能し、アプリケーションをシャットダウンせずにサーバーを変更できる限り、どれを使用するかはあまり気にしません。

ECF がリモート サービスを検索するときに使用するサーバー アドレスを変更するにはどうすればよいですか?

4

1 に答える 1

1

OSGi構成管理を見てください。実行時にコンポーネントのプロパティを変更できます(つまり、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の分散サービスについてはあまり文書化されていないと思います。

于 2011-09-01T12:52:13.897 に答える