Я пытаюсь запустить приложение, в котором сервер может выполнять задачи, загруженные с клиентов.java RMI grant class download from remote machine
interface TaskExecuter extends Remote
<T> T executeTask(Task<T> t);
interface Task<T>
T execute();
Этот интерфейс известен как от клиента, так и от сервера. На стороне сервера у меня есть класс
class TaskExecuterImpl implements TaskExecuter
, который находится в директории WebApps Tomcat, и ссылки на сервер кодовой базы это местоположение.
На стороне клиента У меня есть класс
class SimpleTask implements Task<Integer>, Serializable
, который находится в/дома/PC/общественности/
клиента кодовым является: -Djava.rmi.server.codebase = файл: ///Главная/рс/государственный/- client.policy является:
grant {
permission java.net.SocketPermission
"*:0-65535","read,accept,connect,resolve";
permission java.io.FilePermission
"/home/pc/public/","read";
permission java.security.AllPermission;
};
клиент и сервер находятся на разных машинах. Все работает правильно, если я копирую SimpleTask на сервере, но у меня есть исключение классаNotFound из-за отказа в разрешении, когда ClassLoader пытается загрузить SimpleTask, если, как и должно быть, SimpleTask находится только на машине Клиента.
Опубликовать трассировку стека и уточнить, какой узел получает исключение. Является ли 'file: /// home/pc/public/-' доступным для сервера? – EJP
На стороне клиента отображается исключение, но оно исходит от сервера. Как я могу проверить, доступен ли путь к серверу? – user3415993