0

私はRMIに非常に興味があるので、私の質問は少し誤解されているかもしれません。

私は今私の問題を説明するつもりです。

Eclipse で RMI アプリケーションを開発する場合:

サーバ側:

  1. アプリが必要とするすべてのインターフェイス (リモートを拡張) を定義するためだけにプロジェクトを作成します。
  2. 上記のインターフェースを実装するためのプロジェクトを作成します。
  3. サーバー プロジェクトを作成し、リモート オブジェクトを RMIRegistry に登録します。

クライアント側

  1. クライアント プロジェクトを作成します。ここで私の問題:

    を。CalInterface c = (CalInterface)r.lookup("mycalserver");

CalInterface はクライアント プロジェクトにないため、CalInterface .class をビルドしてクライアント プロジェクトにコピーする必要があります (外部クラス フォルダーを追加して)。それは正常に動作します。

私の質問は:

  1. クライアントプロジェクトに自動的にインポートする方法?.
  2. CalInterface.class はクライアントのスタブ ロールですか?
  3. RMI アプリを開発するための私のアプローチは適切ですか?

ありがとうございました。

4

1 に答える 1

1

サーバ側:

アプリが必要とするすべてのインターフェイス (リモートを拡張) を定義するためだけにプロジェクトを作成します。

いいえ。これは、サーバー プロジェクトとクライアント プロジェクトによって共有される別のプロジェクトである必要があります。これには、リモート インターフェースだけでなく、リモート インターフェースが依存するすべてのアプリケーション クラスも含まれている必要があります。

上記のインターフェースを実装するためのプロジェクトを作成します。サーバー プロジェクトを作成し、リモート オブジェクトを RMIRegistry に登録します。

両方は必要ありません。それらを 1 つのサーバー プロジェクトに結合し、共有プロジェクトをそれに追加できます。

クライアント側

クライアント プロジェクトを作成します。

そして、共有プロジェクトをそれに追加します。

私の質問は:

クライアントプロジェクトに自動的にインポートする方法?.

上記を参照。

CalInterface.class はクライアントのスタブ ロールですか?

いいえ、リモートインターフェースです。取得するオブジェクトは、そのインターフェイスを実装lookup()するリモート スタブですが、そのメカニズムは自動であり、ユーザーには関係ありません。

RMI アプリを開発するための私のアプローチは適切ですか?

いいえ、上記を参照してください。

于 2013-10-13T06:19:55.543 に答える