2011-01-11 58 views
0

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

我的代码:

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) 

我该如何解决这个问题?

回答

1

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

或摆脱安全经理。只有在使用RMI代码库功能时才需要。