2009-03-20 17 views
1

RMIオブジェクトを使用して通信する2つのアプリケーションがあります。 私は、インターフェイス、実装クラス、および生成されたスタブクラスを持っています。RMI:再コンパイルされたimplクラスが必要な変更

私は、implクラスのいくつかの変更が私に新しいスタブクラスを作成させることを認識しました。

私の質問は、スタブを再コンパイルせずに何ができますか?

は限り私が知っているとおり、私は、メソッド構造 (、削除、変更メソッドを追加)

  • を変更することはできません

    • 私はIMPLクラスが使用している クラスにserialVersionUIDのを追加することはできますか?
    • implクラスが のクラスを変更できますか?
    • インプラントと使用されているすべてのクラスを文書化できますか?

    私はこの週の初めに変更を加えたので、この質問をします。今はRMI接続が壊れています。しかし、私はコメントを追加し、私のcheckstyleを更新しました。だから私はシリアルバージョンのUIDを追加し、最終的にいくつかのクラスを変更しました。

  • 答えて

    2

    追加と削除を含め、メソッドのシグネチャを変更する場合は、rmicを再実行してデプロイメントクラスを生成する必要があります。生成されたコードは、クラスの定義済みのメソッドを使用して、リモート呼び出しオブジェクトを実際の実装にリンクするだけです。

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

    関連する問題