(2019.9)
Java 11で CORBA がごっそり削除された。それに伴い, RMI over IIOP も削除された。
IIOP を使わないように書き換える。先祖返り。
この例では、派生クラスが使えるかも試してみる。
IIOP を使うかどうか、特に変更はない。
Counter.java
メソッドを追加しないので、派生したインタフェイスを定義するだけ。
ReverseCounter.java
まずはインタフェイスを実装する部分.
IIOP のときは javax.rmi.PortableRemoteObject
から派生させていたが、削除されたため、書いてはならない.
server.java
サーバクラス。名前解決の部分が変更になる。昔に戻って, レジストリにオブジェクトを登録する。
こちらも名前解決の部分が変更になる。
client.java
使う部分は、特に変更にならない。
名前解決を行うレジストラを起動しておくこと。
$ rmiregistry &
クライアントを実行すると, こういう出力になる。サーバ側で状態が保持されている。
Counter 1 2 3 4 5 6 7 8 9 10 . 9 8 7 6 5 . ReverseCounter 999 998 997 996 995 994 993 992 991 990 . 991 992 993 994 995 . Counter 6 7 8 9 10 11 12 13 14 15 . 14 13 12 11 10 . ReverseCounter 994 993 992 991 990 989 988 987 986 985 . 986 987 988 989 990 .