社員ブログ
HOME  社員ブログ
ホーム > Java, 社員:おかゆ > RMIでサーバー起動時にClassNotFoundException

RMIでサーバー起動時にClassNotFoundException

2014年10月21日 17時13分42秒

こんにちは、おかゆです。

 

RMIは別のホストのJavaオブジェクトのメソッドを呼び出すための通信手段で、
通信を意識せずにJavaのサーバ、クライアントプログラムを作成できるものですが、

サーバー起動時に以下のエラーが出てつまづきました。

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
 java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
 java.lang.ClassNotFoundException: hoge.Hello

codebaseの設定が間違っているとこの様になるようです。


サーバ起動時のオプションでcodebaseを指定していましたが、

rmiregistryを起動時にもcodebaseの指定が必要なようです。

RMIサーバーは下記の様な手順で起動できました。

1.rmiregistryを起動
  rmiregistry -J-Djava.rmi.server.codebase=file:C:/workspace/hoge/bin/

2.サーバーを起動
  java -cp C:\workspace\hoge\bin -Djava.security.policy=C:\workspace\hoge\java.policy -Djava.rmi.server.codebase=file:C:/workspace/hoge/bin/ hoge.HelloImpl

 

 

 

Java, 社員:おかゆ

  1. コメントはまだありません