2015-05-28 3 views
0

Я пытаюсь запустить приложение, в котором сервер может выполнять задачи, загруженные с клиентов.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 находится только на машине Клиента.


+0

Опубликовать трассировку стека и уточнить, какой узел получает исключение. Является ли 'file: /// home/pc/public/-' доступным для сервера? – EJP

+0

На стороне клиента отображается исключение, но оно исходит от сервера. Как я могу проверить, доступен ли путь к серверу? – user3415993

ответ

0

Ваш file:///... кодовая URL почти наверняка только имеет смысл для клиента. Это сервер (в этой ситуации), который должен использовать базу кода, поэтому необходимо, чтобы база кода была настроена на то, что сервер поймет. file: URL-адреса не квалифицируются, если они не относятся к общим дискам, и если они не относятся к представлению сервера об общем диске. Используйте FTP: или http:.

+0

, даже если у меня нет ftp или http-сервера, установленного на клиенте? – user3415993