我正在用Java RMI编写一个客户端服务器程序,我收到一个错误:
java.security.AccessControlException:拒绝访问(“java.net.SocketPermission”“127.0.0.1:1099”“connect,resolve”)
我的代码如下所示:
package xxx;
import java.rmi.Naming;
import java.rmi.RemoteException;
public class Server extends Engine implements RemoteInterface {
public Server() {
super();
if(System.getSecurityManager() == null) {
System.setSecurityManager(new SecurityManager());
}
try {
Naming.rebind("Test", this);
System.out.println("Bound in registry!");
} catch(Exception ex) {
System.out.println(ex);
}
}
@Override
public void test() throws RemoteException {
System.out.println("test() invoked");
}
}
怎么了?
答案 0 :(得分:1)
我忘了添加注册表并实现Serializable。问题解决了。我还删除了SecurityManager。
答案 1 :(得分:0)
您已经安装了SecurityManager,但是您没有授予自己足够的权限来执行此代码。
为什么你认为你需要一个SecurityManager?除非你打算运行上传的代码,否则我会摆脱它