Уважаемые пользователи переполнения стека.
Я прочитал много проблем с реестром RMI и попытался решить их, но безуспешно. Итак, вот мой случай, и я надеюсь, что кто-то может хоть немного помочь мне.
Я строю многопользовательскую игру для школьного проекта. Требуется использовать Java RMI, поэтому я создал 3 хороших jar-файла. Сервер, содержащий (только) основной класс, который публикует эту вещь на удаленном сервере и загружает некоторые вещи, такие как карта и т. Д. Клиент, содержащий некий свинг-мусор, отображающий несколько приятных форм. И, в-третьих, библиотека, которая содержит весь код pacman.
Теперь, когда я запускаю сервер локально, он запускает rmiregistry и привязывает к нему игру (конечно, после настройки). Затем я подключаю к нему мой клиент и могу играть красиво. Все работает, и я могу запустить клиент представления, подключившийся к моей локальной rmiregistery, и получить объект игры красиво.
после этого я загрузил реестр независимо от сервера и снова запустил программу успешно. Даже через IP моего ноутбука (не 127.0.0.1) он работал нормально. Обратите внимание, что я не установил classpath реестра.
Итак, после этого я переместил материал на сервер (2008). Я запустил rmiregistry там без пути к классам и попытался подключить к нему свой server.jar, но потерпел неудачу. (не удалось найти исключение класса ..spel), поэтому я исправил путь к классу .... безрезультатно .... поэтому я открыл новую консоль, запустил новый реестр, скопировал pacman.jar в c: \ и запустил сервер .jar с параметром -Djava.rmi.server.codebase = c: \ parameterther .... безрезультатно ... затем я установил диспетчер безопасности ... (System.setSecurityManager(new RMISecurityManager());
) и создал политику, содержащую: grant {permission java.security.AllPermission;};
и выполнил сервер, используя
server.jar -Djava.rmi.server.codebase = c: -Djava.security.policy = server.policy ... снова без эффекта.
Я получаю одно и то же исключение:
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: Tervoort.Bram.Packman.Spel
at sun.rmi.server.UnicastServerRef.oldDispatch(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
Кто-нибудь знает, в чем проблема? и как это исправить?