当前位置: 首页 > 知识库问答 >
问题:

java.security。AccessControlException:Java RMI电话目录中的访问被拒绝

汲昊空
2023-03-14

我通过互联网获得了这个源代码,用于我的学术作业目的。它只是JavaRMI的一个实用程序。在这里,我发布了我的服务器文件的代码。

   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.security。AccessControlException:拒绝访问(java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

请帮帮我。。。!

共有2个答案

姚兴安
2023-03-14

谢谢亲爱的

实际上,我已经浏览了RMI的几个ppt和pdf,我开始了解运行和编译程序。几乎所有的文档都建议我将-D作为属性而不是参数传递。但当我这样做时,它会给我一个访问异常的错误消息。然后我将我的策略文件放在我的C驱动器中并使用命令

C:/

它成功了…:)我的RMI应用程序正在成功运行。谢谢你的回复。

丰佐
2023-03-14

策略文件应作为-D而不是参数的属性传递

C:/>java -Djava.security.policy=policy.policy LookupServer Database.txt 
 类似资料:
  • 我正在构建一个RMI应用程序,我有以下服务器类。然而,当我在eclipse中运行它时,我得到了以下异常。出了什么问题,我该如何解决?我花了两天时间在网上阅读类似的问题,但我找不到解决方法。我怀疑这与策略文件有关,但我不知道如何使用。另外,如果问题出在我的运行方式上,你能告诉我在eclipse中如何操作吗。 --

  • 问题内容: 概要 我试图在Docker中挂载主机目录,但是即使访问权限看起来不错,也无法从容器中访问主机目录。 细节 我在做 接着 它给了我: 以及更多类似的内容(我认为这是相关的部分)。 如果我做 结果是 主机是Fedora 20,带有Docker 1.0.0和go1.2.2。 怎么了? 问题答案: 这是SELinux问题。 您可以暂时签发 在主机上访问或通过运行添加SELinux规则 特别:

  • 所以我基本上是用自制程序在mac上安装带有mysql的mariadb。以下是我所做的步骤: 警告:无法使用/usr/local/cellar/mariadb/10.4.6_1/bin/resolveip查找主机'toms-macbook-pro.local'。这可能意味着您的libc库与这个二进制MariaDB版本不是100%兼容。MariaDB守护进程mysqld应该正常工作,但主机名解析不能工

  • 问题内容: 这是我的编辑从第27行到第39行的代码: 我认为我的问题可能与Win7教授有关:(访问被拒绝) 如何解决这个问题,或者我需要做些什么或阅读才能使它起作用? 谢谢你不燃烧。 我只是更改了文件夹选项,使我获得完整的(Access …),现在我只需要弄清楚为什么在运行javac VendingMachine.java时为什么没有得到任何输出,我想是有一个新问题。 问题答案: 您的工作目录为。

  • 问题内容: 我正在尝试读取文件夹中的文件,但是当我运行该程序时,它将引发此异常。我也尝试了其他一些文件夹。它引发相同的异常。 问题答案: 您无法打开和读取目​​录,无法使用和方法区分文件和文件夹。您可以使用和方法获取文件夹的内容(分别用于文件名和s),还可以指定一个过滤器来选择列出的文件的子集。

  • 我正在使用wamp服务器,我的phpMyAdmin页面返回了以下错误。 Wamp服务器版本:2.2 MySQL版本:5.5.24 #1045-用户“root”@“本地主机”的访问被拒绝(使用密码:是) 我编辑了我的配置文件wamp\app\phpmyadmin4.1.14\config.inc.php: 但这并没有解决问题。任何帮助都将不胜感激。