小编KSK*_*KSK的帖子

Java RMI使用还是不使用SecurityManager

经过大量的搜索和反复试验后,我仍然无法确定是否需要安全管理器,如果需要,如何确定它是否可以工作。

启动服务器的代码:

    Registry registry;
    try {
        System.setProperty("java.security.policyfile", "\\\\...\\security.policy");
        if (System.getSecurityManager() == null) {
            RMISecurityManager securityManager = new RMISecurityManager();
            System.setSecurityManager(securityManager);
        }
        registry = LocateRegistry.createRegistry(port);
        registry.bind(serviceName, remote);
        System.out.println("RMI registry created.");
    } catch (RemoteException e) {
        //error means registry already exists
        System.out.println("RMI registry already exists.");
    }
    System.setProperty("java.rmi.server.hostname", hostURL);
    Naming.rebind(hostURL, remote);
Run Code Online (Sandbox Code Playgroud)

服务器上的错误消息:

D:\>java -jar Server.jar
RMI server starting up
RMI registry created.
Exception in thread "main" ...Exception: Unable to start the Remote Server Server[UnicastServerRef [liveRef: [...]]
        at ServiceProvider.start(ServiceProvider.java:64)
        at Server.main(Server.java:76)
Caused by: java.security.AccessControlException: access …
Run Code Online (Sandbox Code Playgroud)

java rmi securitymanager connectexception

2
推荐指数
1
解决办法
4825
查看次数

标签 统计

connectexception ×1

java ×1

rmi ×1

securitymanager ×1