当我通过 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)
我只需在 cmd 行中键入“start rmiregistry”即可启动 RMI 注册表。一个新窗口打开,标题为“c:\Program Files\Java\jdk1.7.0\bin\rmiregistry.exe”。在这条路上,只有我有 JDK。
此路径中可用的所有 .class 文件:D:\Workspace\Study\bin\com。
在 com 文件夹下,我拥有所有三个文件“RMIInterface、RMIServer、RMIClient”。
当我从 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();
}