0

Java RMI コードベース プロパティについて少し混乱しています。

ここhttp://docs.oracle.com/javase/6/docs/technotes/guides/rmi/codebase.htmlでは、クライアントがいくつかのクラスのカスタムサブクラスを作成できるため、サーバーがダウンロードする必要があるため、コードベースがクライアントに設定されていることが示されていますクラス。

リモート メソッドへのパラメーターの 1 つがリモート インターフェイスを実装していないクラスである場合にのみ、クライアント コードベースが問題になることを理解していますか? サーバー側にスタブがあるため、リモートインターフェイスサーバーを実装している場合、何もダウンロードする必要がないためです。

しかし、なぜサーバー側で必要なコードベースが必要なのでしょうか。それは言う

The client requests the class definition from the codebase. The codebase the client uses is the URL that was annotated to the stub instance when the stub class was loaded by the registry. Back in step 1, the annotated stub for the exported object was then registered with the Java RMI registry bound to a name.

スタブ実装のみを使用する場合、クライアントはなぜスタブ クラス定義を要求する必要があるのですか。

4

1 に答える 1

1

リモート メソッドへのパラメーターの 1 つがリモート インターフェイスを実装していないクラスである場合にのみ、クライアント コードベースが問題になることを理解していますか?

はい、そうです。

しかし、なぜサーバー側で必要なコードベースが必要なのでしょうか。

サーバーがクライアントにデプロイされていないクラスのインスタンスを返したい場合、そしてあなたが言うように、それはリモートオブジェクトではありません。

スタブ実装のみを使用する場合、クライアントはなぜスタブ クラス定義を要求する必要があるのですか。

それは違いのない区別です。クラスがなければ、クラスのインスタンスを使用できません。もちろん、ダウンロードする必要はありません。クライアントに直接デプロイできます。

コードベース システム全体がオプションであることを理解する必要があります。展開ソリューションです。提供される柔軟性が必要ない場合は、使用しないでください。

于 2013-06-16T00:42:18.393 に答える