Когда я запускаю свой серверный код через 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)
Я запустил реестр RMI, просто набрав «start rmiregistry» в строке cmd. Открылось новое окно с заголовком «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();
}