1

RMI オブジェクトを使用して通信する 2 つのアプリケーションがあります。インターフェイス、実装クラス、および生成されたスタブ クラスがあります。

impl クラスのいくつかの変更により、新しいスタブ クラスを作成する必要があることに気付きました。

私の質問は、スタブを再コンパイルせずにどのような変更を加えることができるかということです。

私が知っている限り:

  • メソッド構造を変更できない (メソッドの追加、削除、変更)
  • impl クラスが使用しているクラスに serialVersionUID を追加できますか?
  • impl クラスが使用しているクラスを変更できますか?
  • impl と使用されているすべてのクラスを文書化できますか?

今週の初めに変更を行ったので、この質問をします。現在、RMI 接続が切断されています。しかし、コメントを追加してチェックスタイルを更新しただけです。そこで、シリアル バージョンの UID を追加し、一部のクラスを最終版に変更しました。

4

1 に答える 1

2

追加や削除など、メソッド シグネチャを変更した場合は、rmic を再実行して展開クラスを生成するだけで済みます。生成されたコードは、クラスに定義されたメソッドを介してリモート呼び出しオブジェクトを実際の実装にリンクするだけです。

これは、impl コード (メソッド シグネチャを除く) と、impl クラスで使用される任意のクラスのコードを問題なく変更できることを意味します。実装で使用されるこれらのクラスがメソッド シグネチャの一部でもある場合、リモート実装と一致するようにクライアント側で適切なバージョンが必要になりますが、これは RMI 固有のものではありません。

于 2009-03-20T12:25:27.097 に答える