2015-03-17 4 views
0

Я получил этот источник через Интернет для своей цели академического назначения. Это просто практический Java RMI. Здесь я отправляю код моего файла сервера.java.security.AccessControlException: доступ запрещен в Java RMI Телефонный справочник

import java.io.*; 
    import java.util.*; 
    import java.rmi.*; 
    import java.rmi.server.*; 

    public class LookupServer extends UnicastRemoteObject implements Lookup { 
     private Vector save = new Vector(); 

     public LookupServer(String db) throws RemoteException 
     { 
     try { 
      FileReader fr = new FileReader(db); 
      BufferedReader br = new BufferedReader(fr); 
      String s = null; 
      while ((s = br.readLine()) != null) 
       save.addElement(s); 
      fr.close();   
     } 
     catch (Throwable e) { 
      System.err.println("Exception in Lookupserver():"+e); 
      System.exit(1); 
     } 
     } 

     public String findInfo(String info) 
     { 
     if (info == null) 
     return null; 

     info = info.toLowerCase(); 
     int n = save.size(); 
     for (int i = 0; i < n; i++) { 
      String dbs = (String)save.elementAt(i); 
      if (dbs.toLowerCase().indexOf(info) != -1) 
      return dbs; 
     } 

     return null; 
     } 

     public static void main(String args[]) 
     { 
     try { 
      RMISecurityManager security = new RMISecurityManager(); 

      System.setSecurityManager(security); 

      String db = args[0]; 

      LookupServer server = new LookupServer(db); 

      Naming.rebind("LookupServer", server); 
      System.err.println("LookupServer ready..."); 
     } 
     catch (Throwable e) { 
      System.err.println("Exception in main: " + e); 
      System.exit(1); 
     } 
     } 
} 

Мой файл политики (policy.policy) включает в себя

grant 
{ 
// Allow everything for now 
permission java.security.AllPermission; 
}; 

Теперь я застрял на:

C: /> Java LookupServer Database.txt java.security.policy = политику. Политика

Исключение в главном: java.security.AccessControlException: доступ запрещен (java.net.SocketPermission 127.0.0.1:1099 подключения, решительность)

Пожалуйста, помогите мне ...!

ответ

1

Файл политики должен быть принята как свойство с -D не в качестве параметра

C:/>java -Djava.security.policy=policy.policy LookupServer Database.txt 
0

Благодарность Дорогой

На самом деле я уже прошла через несколько п.п. и PDFs из RMI и я получаю знал об управлении и компиляция программ. Почти все документы предлагали мне передать -D как свойства не как параметр. но когда я это сделал, это давало мне сообщение об ошибке исключения доступа. Затем я поместил свой файл политики в моем диске С и использовать команду

C: /> Java -Djava.security.policy = C: /policy.policy LookupServer Database.txt

И это сработало .. . :) Мои приложения RMI работают успешно. Спасибо за ваш ответ.

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