Java RMI / 访问被拒绝

     2023-04-13     224

关键词:

【中文标题】Java RMI / 访问被拒绝【英文标题】:Java RMI / access denied 【发布时间】:2016-04-12 10:05:58 【问题描述】:

我正在尝试创建 RMI 服务器,但在运行时出现以下异常:

java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:4555" "listen,resolve")

我已阅读有关策略文件的 Oracle 教程,这是我插入到 src 文件夹中的 server.policy 文件的内容:

grant codeBase "file:///C:/EclipseProjects/MultiServiceServer/src"

permission java.security.AllPermission;

;

我还将 VM 参数设置为:

-Djava.security.policy=src/server.policy

最后,这是这个简单的 RMI 服务器的代码:

public class Main 

public static void main(String[] args)
       

    System.out.println("Server is running..");

     if (System.getSecurityManager() == null) 
            System.setSecurityManager(new SecurityManager());
     

    try 

        String name = "AvailableService";

        AvailableService service = new ServiceList();

        AvailableService stub = (AvailableService)UnicastRemoteObject.exportObject(service, 0);

        LocateRegistry.createRegistry(4555);

        Registry reg = LocateRegistry.getRegistry(4555);

        reg.bind(name, stub);

        System.out.println(name+" bound");

     catch(Exception e)e.printStackTrace();



感谢您的帮助。

【问题讨论】:

【参考方案1】:

C:/EclipseProjects/MultiServiceServer/src 文件夹在运行时不存在,并且在编译时不包含 .class 文件。因此,授予它任何权限都是徒劳的。除非您使用代码库功能,否则您根本不需要在 RMI 中使用安全管理器。你不是。所以删除安全管理器。

【讨论】:

如果我不使用安全管理器,当我尝试从客户端引用服务器端的对象时,我会得到另一个异常(没有安全管理器:RMI 类加载器已禁用)。我已经读到需要安全管理器才能通过 RMI 加载类。 消息显示ClassNotFoundException,并在括号中提到“(无安全管理器)”作为备注。 问题不是“没有安全管理器”,而是ClassNotFoundException。解决方案不是添加安全管理器,而是将丢失的类添加到引发异常的 JVM 的类路径中。在我陈述的条件下需要安全经理,而不是其他条件。

与 localhost 的 Rmi 连接被拒绝

】与localhost的Rmi连接被拒绝【英文标题】:Rmiconnectionrefusedwithlocalhost【发布时间】:2010-12-2120:27:43【问题描述】:我在使用javarmi时遇到问题:当我尝试运行我的服务器时,我得到了一个connectException(见下文)。执行rebind方法时... 查看详情

Java - 访问被拒绝 java.io.FileNotFoundException [重复]

】Java-访问被拒绝java.io.FileNotFoundException[重复]【英文标题】:Java-Accessisdeniedjava.io.FileNotFoundException[duplicate]【发布时间】:2013-11-0221:24:36【问题描述】:我有以下代码:List<FileItem>items=uploadHandler.parseRequest(request);for(FileI 查看详情

java.io.FileNotFoundException:(访问被拒绝)

】java.io.FileNotFoundException:(访问被拒绝)【英文标题】:java.io.FileNotFoundException:(Accessisdenied)【发布时间】:2011-05-1522:23:57【问题描述】:我正在尝试读取文件夹中的文件,但是当我运行程序时它会抛出此异常。我也尝试了其他... 查看详情

LibUsb 声明接口访问被拒绝 Java

】LibUsb声明接口访问被拒绝Java【英文标题】:LibUsbclaiminterfaceaccessdeniedJava【发布时间】:2014-03-2712:46:24【问题描述】:我希望能够从USB计步器读取数据。我在Java中尝试这个,我正在使用LibUsb和Usb4Java库。我似乎无法认领USB管道... 查看详情

java.security.AccessControlException:访问被拒绝(java.io.FilePermission

】java.security.AccessControlException:访问被拒绝(java.io.FilePermission【英文标题】:java.security.AccessControlException:Accessdenied(java.io.FilePermission【发布时间】:2012-05-1407:19:57【问题描述】:finalFileparentDir=newFile("S:\\\\PDSPopula 查看详情

java.io 上的 FileNotFound(访问被拒绝)异常

】java.io上的FileNotFound(访问被拒绝)异常【英文标题】:FileNotFound(Accessisdenied)Exceptiononjava.io【发布时间】:2011-12-2522:34:27【问题描述】:为什么我在运行这个程序时会收到这个错误?这发生在随机迭代之后。通常在第8000次迭代... 查看详情

java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:是)

】java.sql.SQLException:用户\\\'root\\\'@\\\'localhost\\\'的访问被拒绝(使用密码:是)【英文标题】:java.sql.SQLException:Accessdeniedforuser\'root\'@\'localhost\'(usingpassword:YES)java.sql.SQLException:用户\'root\'@\'localhost\'的访问被拒绝(使用密码:是... 查看详情

java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission modifyThread)

】java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermissionmodifyThread)【英文标题】:java.security.AccessControlException:Accessdenied(java.lang.RuntimePermissionmodifyThread)【发布时间】:2012-05-2100:36:52【问题描述】:我有我的批处理 查看详情

运行:java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:否)

】运行:java.sql.SQLException:用户\\\'root\\\'@\\\'localhost\\\'的访问被拒绝(使用密码:否)【英文标题】:run:java.sql.SQLException:Accessdeniedforuser\'root\'@\'localhost\'(usingpassword:NO)运行:java.sql.SQLException:用户\'root\'@\'localhost\'的访问被拒绝... 查看详情

Tomcat AccessControlException:访问被拒绝(“java.io.FilePermission”“日志”“读取”)

】TomcatAccessControlException:访问被拒绝(“java.io.FilePermission”“日志”“读取”)【英文标题】:TomcatAccessControlException:accessdenied("java.io.FilePermission""logs""read")【发布时间】:2017-04-1116:07:23【问题描述】:我... 查看详情

Java Mission Control - 访问被拒绝连接到远程

】JavaMissionControl-访问被拒绝连接到远程【英文标题】:JavaMissionControl-AccessDeniedConnectingtoRemote【发布时间】:2018-01-0301:01:53【问题描述】:我无法使用JavaMissionControl连接到远程VM。我可以相对轻松地使用VisualVM进行连接。我想使用... 查看详情

AWS - java.sql.SQLException:用户''@'ip'的访问被拒绝(使用密码:是)[重复]

】AWS-java.sql.SQLException:用户\\\'\\\'@\\\'ip\\\'的访问被拒绝(使用密码:是)[重复]【英文标题】:AWS-java.sql.SQLException:Accessdeniedforuser\'\'@\'ip\'(usingpassword:YES)[duplicate]AWS-java.sql.SQLException:用户\'\'@\'ip\'的访问被拒绝(使用密码:是)... 查看详情

java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission accessClassInPackage.sun.misc

】java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermissionaccessClassInPackage.sun.misc)【英文标题】:java.security.AccessControlException:accessdenied(java.lang.RuntimePermissionaccessClassInPackage.sun.misc)【发布时间 查看详情

例外:访问被拒绝(“java.net.SocketPermission”“localhost:80”“listen,resolve”)

】例外:访问被拒绝(“java.net.SocketPermission”“localhost:80”“listen,resolve”)【英文标题】:Exception:accessdenied("java.net.SocketPermission""localhost:80""listen,resolve")【发布时间】:2014-07-1312:50:51【问题描述】:将E 查看详情

java数据库mysql访问被拒绝(代码片段)

...l.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:拒绝用户'Bob'@'%'访问数据库'TEST'这种连接是否正确,如果是,那么凭据是错误的错误?如果他们错了怎么连接?谢谢tryClass.forName("com.mysql.jdbc.Driver");St 查看详情

“java.sql.SQLException:用户'root'@'localhost'的访问被拒绝(使用密码:YES)”

】“java.sql.SQLException:用户\\\'root\\\'@\\\'localhost\\\'的访问被拒绝(使用密码:YES)”【英文标题】:"java.sql.SQLException:Accessdeniedforuser\'root\'@\'localhost\'(usingpassword:YES)"“java.sql.SQLException:用户\'root\'@\'localhost\ 查看详情

Xamarin 表单 - Java.Interop.lz4 访问被拒绝错误

】Xamarin表单-Java.Interop.lz4访问被拒绝错误【英文标题】:XamarinForms-Java.Interop.lz4AccessDeniedBug【发布时间】:2020-12-1512:23:10【问题描述】:VisualStudio2019-XamarinForms应用程序构建错误我在我的Xamarin表单项目中打开了链接功能,并在编... 查看详情

用Java连接到MySQL数据库时访问被拒绝[关闭]

】用Java连接到MySQL数据库时访问被拒绝[关闭]【英文标题】:AccessDeniedwhenconnectingtoMySQLdatabaseinJava[closed]【发布时间】:2013-08-1318:34:58【问题描述】:我正在使用mysql数据库作为存储来构建自己的CRM(客户关系管理器)应用程序,... 查看详情