Java JDK 1.6、Windows XP SP3 で Eclipse STS 2.7.2 に取り組んでいます。認証が必要なプロキシの背後で作業しています。
DS と Zookeeper ディスカバリーを使用して動作する 2 つの単純なクライアントとサーバーのプラグインを作成しました。これらは、3 番目のプラグインにバンドルされている IHello インターフェイスを参照しています。
サーバーは、192.16.23.28:6666/hello で呼び出されたときに文字列「hello」を返す単純な Hello サービスを公開し、VM 引数で Zookeper を開始します。
-Dzoodiscovery.dataDir=bla
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=192.168.23.28:3030;clientPort=3031
xml は次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="NOLINKALLOWED" name="it.eng.test.remote.ds.helloservice">
<implementation class="it.eng.test.remote.ds.helloservice.HelloService"/>
<property name="service.exported.interfaces" type="String" value="*"/>
<property name="service.exported.configs" type="String" value="ecf.generic.server"/>
<property name="ecf.exported.containerfactoryargs" type="String" value="ecftcp://192.168.23.28:6666/hello"/>
<service>
<provide interface="it.eng.test.remote.ds.hello.IHello"/>
</service>
</scr:component>
クライアントは、VM 引数を使用して Zookeeper を開始します
-Dzoodiscovery.autoStart=true
-Dzoodiscovery.flavor=zoodiscovery.flavor.standalone=192.168.23.28:3031;clientPort=3030
どちらの場合も、OSGi フレームワークは-console -consoleLog -clean
引数で開始されます。
次に、サーバーとクライアントの両方に 2 つの個別の実行構成を作成し (Run as-> run configuration..)、必要なすべてのバンドル (最も重要なもの:org.eclipse.ecf.provider.remoteservice
とorg.eclipse.ecf.provider.zookeeper
) とそれらの依存関係を追加しました。
その構成に基づいて、クライアントとサーバーの両方に対して 2 つの別個の製品構成 (新規 -> 製品定義 -> 実行構成の選択) を定義しました。
ここで、それぞれの製品構成内の [Launch an Eclipse application] リンクをクリックしてそれらを実行すると、すべてが機能します。サーバーはサービスを公開し、クライアントはそれを取得して出力に「Hello」を表示します。netstat -a | grep 6666
誰かがそのポートでリッスンしていることをnetstat -a | grep 30
示し、ポート 3030 と 3031 が使用されていることを示しています。
Eclipse はプロキシを正しく使用するように構成されています。
前述の構成 (エクスポート -> Eclipse 製品 -> 製品構成の選択) に基づいてそれらを Eclipse 製品としてエクスポートすると、クライアントとサーバーの 2 つのフォルダーが作成されます。
config.ini
それらの内部には、フレームワーク ( ) と VM ( ) の両方の構成ファイルを含む、外部 OSGi フレームワーク内でアプリケーションを実行するために必要なすべてが含まれていますeclipse.ini
。
アプリケーションが開始STS.exe -console
され、必要なすべてのバンドルがインストールされて開始された OSGi コンソールが開きます。
サーバーを起動すると、誰かが 6666 をリッスンし、Zookeeper がサービスが公開されたことを報告しているのが見えます。
クライアントを起動しても何も起こりません。出力なし、3030 と 3031 の接続なし、エラーなし。それは単に何もしませんが、飼育係は発見を開始したと言います。
IP の代わりに localhost を使用しても何も変わりません。Eclipse 内では機能しますが、外部では機能しません。