0

如何对 java.security.AccessControlException 问题进行排序?当我运行 myRMIServer 时,我得到了这个异常?

我的代码:

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class myRMIServer
{
        public static void main(String[] argv)
                {
                System.setSecurityManager(new RMISecurityManager());
                try
                        {
                        myRMIImpl implementation = new myRMIImpl("myRMIImplInstance");
                        }
                catch (Exception e)
                        {
                        System.out.println("Exception occurred: " + e);
                        }
                }
}

public interface myRMIInterface extends java.rmi.Remote
{
        public java.util.Date getDate() throws java.rmi.RemoteException;
}

import java.rmi.*;
import java.rmi.server.UnicastRemoteObject;

public class myRMIImpl extends UnicastRemoteObject implements myRMIInterface
{
        public myRMIImpl(String name) throws RemoteException
                {
                super();
                try
                        {
                        Naming.rebind(name, this);
                        }
                catch(Exception e)
                        {
                        System.out.println("Exception occurred: " + e);
                        }
                }
        public java.util.Date getDate()
                {
                return new java.util.Date();
                }
}

输出

Exception occurred: java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

我该如何解决这个问题?

4

1 回答 1

1

定义一个授予所需权限的 .policy 文件,并将其命名为 java.security.policy 参数。

或者摆脱安全管理器。仅当您使用 RMI 代码库功能时才需要它。

于 2011-01-11T09:10:20.043 回答