当前位置: 技术问答>java相关
救救我吧,高手们。
来源: 互联网 发布时间:2015-01-12
本文导语: 我在rmi的程序中,注册远程对象,使用了如下代码 /**CODE **/ if(System.getSecurityManager()==null) { System.setSecurityManager(new RMISecurityManager()); } /**CODE**/ try{ RemoteObjImpl obj = new RemoteObjImpl(); java.rmi.Naming.reBin...
我在rmi的程序中,注册远程对象,使用了如下代码
/**CODE **/
if(System.getSecurityManager()==null)
{
System.setSecurityManager(new RMISecurityManager());
}
/**CODE**/
try{
RemoteObjImpl obj = new RemoteObjImpl();
java.rmi.Naming.reBind("rmi://myserver/RemoteObj",obj);
}catch(Exception e)
{
e.printStackTrace();
}
运行时出现建立Socket时抛安全异常,把System.setSecurityManager(..)一句注释
掉就没问题。为什么?
/**CODE **/
if(System.getSecurityManager()==null)
{
System.setSecurityManager(new RMISecurityManager());
}
/**CODE**/
try{
RemoteObjImpl obj = new RemoteObjImpl();
java.rmi.Naming.reBind("rmi://myserver/RemoteObj",obj);
}catch(Exception e)
{
e.printStackTrace();
}
运行时出现建立Socket时抛安全异常,把System.setSecurityManager(..)一句注释
掉就没问题。为什么?
|
如果你继承了SecurityManager 生成自已的SecurityManager 的话,你需要覆盖几乎所有它声明的方法,因为它所有的方法缺省都抛出SecurityException!
在不显示调用setSecurityManger() 方法时,缺省的SecurityManger 是 null,不会抛出异常,但你一旦设置后,就要注意要覆盖自已想要的方法才行。而且如果你是在某个Browser 中的话,Browser 有自已特定的SecurityManager,你是不被允许设置它的。
在不显示调用setSecurityManger() 方法时,缺省的SecurityManger 是 null,不会抛出异常,但你一旦设置后,就要注意要覆盖自已想要的方法才行。而且如果你是在某个Browser 中的话,Browser 有自已特定的SecurityManager,你是不被允许设置它的。