RMI:再コンパイルされた impl クラスが必要な変更は何ですか
質問
RMI オブジェクトを使用して通信する 2 つのアプリケーションがあります。インターフェイス、実装クラス、生成されたスタブ クラスがあります。
impl クラスの一部の変更により、新しいスタブ クラスを作成する必要があることがわかりました。
私の質問は、スタブを再度再コンパイルせずにどのような変更を加えることができるかということです。
私が知っている限り:
- メソッド構造を変更できません(追加、削除、メソッドの変更)
- インプルクラスが使用しているクラスにSerialVersionUidを追加できますか?
- インプルクラスが使用しているクラスを変更できますか?
- impl と使用されているすべてのクラスを文書化できますか?
今週初めに変更を行ったところ、RMI 接続が切断されたため、この質問をしました。ただし、コメントを追加し、チェックスタイルを更新しただけです。そこで、シリアルバージョンのUIDを追加し、いくつかのクラスを最終的なものに変更しました。
解決
あなただけの追加と削除を含め、任意のメソッドのシグネチャを変更した場合にrmic再実行し、配備クラスを生成する必要があります。生成されたコードは、単にクラスの定義されたメソッドを介して実際の実装にリモート呼び出しオブジェクトをリンクします。
これは、あなたが(メソッドのシグネチャを除く)のimplコードと問題なくIMPLクラスで使用される任意のクラスのコードを変更できることを意味します。実装によって使用されるこれらのクラスはまた、あなたのメソッドのシグネチャの一部である場合には、適切なバージョンでは、リモート実装に合わせて、クライアント側で必要とされますが、これは何もRMI固有のものです。
所属していません StackOverflow