サーバー コードを Eclipse で実行すると、次の例外が発生しました。
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: com.RMIInterface
at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:413)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
コマンド行に「start rmiregistry」と入力するだけで、RMI レジストリを開始しました。「c:\Program Files\Java\jdk1.7.0\bin\rmiregistry.exe」という見出しの新しいウィンドウが開きます。このパスには、JDK しかありません。
このパスで利用可能なすべての .class ファイル: D:\Workspace\Study\bin\com.
com フォルダの下に、「RMIInterface、RMIServer、RMIClient」という 3 つのファイルすべてがあります。
Eclipse からサーバー コードを実行すると、上記の例外が発生しました。(つまり) RMIInterface が見つかりません。しかし、私は同じフォルダにそれを持っています。
サーバーを実行するには、他に何をすればよいですか?
これは私のサーバーコードです:
RMIServer serRef = new RMIServer();
try {
RMIInterface inref = (RMIInterface)UnicastRemoteObject.exportObject(serRef, 0);
Registry reg = LocateRegistry.getRegistry();
reg.bind("ServerObj", inref); -------->Exception in this line
} catch (AlreadyBoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}