next up previous
: 3. [クライアント側] プログラムの実行 : 簡単なプログラムの実行 : 1. [サーバ側] ネーミング・サービスの実行

2. [サーバ側] プログラムの実行

サーバ側プログラムの実行に必要なのは以下のファイルである. スタブも必要な点に注意しよう.


    SayHello.class
    SayHelloRemoteObject.class
    SayHelloServer.class
    SayHelloRemoteObject_Skel.class
    SayHelloRemoteObject_Stub.class

これらのファイルを単一のディレクトリにまとめ,以下のようにサーバ側のプログラムを 実行する. うまく実行できれば,画面には「Start!」と表示され,クライアントの接続待ち の状態になる.




\begin{boxedminipage}{13.7cm}
\begin{alltt}
\relax{}
\\ % java SayHelloServer\,...
...覆海海妊D薀ぅ▲鵐箸寮楝蛎圓曽a屐\\
\\ \relax \end{alltt}\end{boxedminipage}



なお,ネーミング・サービス(ここではrmiregistry)からスタブが見えない場合 には,オブジェクトリファレンスの登録の際に以下のような例外が発生する.




\begin{boxedminipage}{13.7cm}
\begin{alltt}
\relax{}
\\ % java SayHelloServer\,...
...loRemoteObject_Stub
\\ (以下省略)
\\
\\ \relax \end{alltt}\end{boxedminipage}



この場合には-Djava.rmi.server.codebaseオプションにより,スタブの場所を明 示的に指定する必要がある. スタブの場所はURL形式で指定する.

例えば,/home/murao/java/SayHello にスタブがあるならば以下のようにサーバ 側のプログラムを実行する. なお,codebaseを指定する際にはパスの最後の''/''は省略できないこと に注意すること.




\begin{boxedminipage}{13.7cm}
\begin{verbatim}% java SayHelloServer
-Djava.r...
...//home/murao/java/SayHello/''
(実際には一行)\end{verbatim}\end{boxedminipage}



U-GM\murao 平成14年7月12日