2015-11-08 2 views
-4

Как запустить rmiregistry и RMI-сервер с правильными параметрами на удаленном хосте?Как запустить rmiregistry и rmi-сервер с правильными параметрами?

Есть проблемы при запуске клиента RMI:

java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
java.net.MalformedURLException: unknown protocol: c 
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 
at com.labros.client.TestClient.main(TestClient.java:33) 
Caused by: java.net.MalformedURLException: unknown protocol: c 
at java.net.URL.<init>(Unknown Source) 
at java.net.URL.<init>(Unknown Source) 
at java.net.URL.<init>(Unknown Source) 

Я начал rmiregistry на удаленном хосте с нижеследующим:

rmiregistry -J-Djava.rmi.server.codebase=file:///export/home/timsadm/Projects/rmi-server/cla‌​sses -J-Djava.security.policy=/export/home/timsadm/Projects/rmi-server/classes/java.p‌​olicy & 

и сервер с

java -Djava.rmi.server.codebase=file:///export/home/timsadm/Projects/rmi-server/class‌​es -Djava.security.policy=/export/home/timsadm/Projects/rmi-server/classes/java.pol‌​icy com.labros.server.Server 

Server started 
+0

начал rmiregistry на удаленном хосте с следующим: джон @ Джон: ~/Проекты/RMI-сервер/классы $ rmiregistry -J-Djava.rmi.server.codebase = файл: /// экспорт/дома/timsadm/Projects/rmi-server/classes -J-Djava.security.policy =/export/home/timsadm/Проекты/rmi-server/classes/java.policy & и сервер с: john @ john : ~/Проекты/rmi-server/classes $ java -Djava.rmi.server.codebase = файл: /// export/home/timsadm/Projects/rmi-server/classes -Djava.security.policy =/export/home /timsadm/Projects/rmi-server/classes/java.policy com.labros.server.Server Начал работу с сервером ... – Labros

+1

Вы должны [изменить] это в свой вопрос, а не размещать его в виде комментариев. – Mogsdad

+0

Не используйте форматирование цитат для текста, который не цитируется, и используйте форматирование кода для текста, который является кодом или выходом компьютера. – EJP

ответ

0
java -Djava.rmi.server.codebase=file:///export/home/timsadm/Projects/rmi-server/class‌​es 

и

java.net.MalformedURLException: unknown protocol: c 

Это взаимно противоречивые. Я подозреваю, что ваш параметр codebase действительно выглядит так:

-Djava.rmi.server.codebase=c:/export/home/timsadm/Projects/rmi-server/class‌​es 

который не является допустимым URL.

Но почему вы используете функцию codebase? A file: URL-адрес кода основывается только на одном хосте, и в этом случае вам вообще не нужна функция кодовой базы, или если она указывает общую файловую систему с точки зрения реестра и клиента, кажется, делают. Обычно URL-адреса кодовой базы: http: или ftp:, и они относятся к файлу JAR.

Смежные вопросы