我有一个与 RMI 的学校项目。我试图编写一个小的“Hello World”程序,但我无法让它工作。
我试图修改策略并改变我启动 rmiregistry 的方式,但没有任何效果......以前有人遇到过这个问题吗?
在此处链接到我的代码。它应该在 localhost:1099 上工作
我刚刚在终端中启动注册表,rmiregistry
位于项目的根目录
错误代码:服务器上的错误:java.security.AccessControlException:访问被拒绝(“java.net.SocketPermission”“127.0.0.1:1099”“connect,resolve”)[...]在HelloServer.main(HelloServer.java: 15)
代码 HelloServer.java :
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class HelloServer {
public static void main(String[] args) {
try {
if (System.getSecurityManager() == null)
System.setSecurityManager(new SecurityManager()); //Defini Security manager
//System.setProperty("java.security.policy","file:./default.policy");
//LocateRegistry.createRegistry(1099);
HelloImp h = new HelloImp("Hello World!"); //Créer l'objet distant implemente
Hello h_stub = (Hello) UnicastRemoteObject.exportObject(h, 0);
Registry registry = LocateRegistry.getRegistry(1099); //Récupère le registre
registry.bind("Hello1", h_stub); //Ajoute objet distant au registre
System.out.println("Server ready");
} catch (Exception e) {
System.err.println("Error on server : " + e);
e.printStackTrace();
}
}
}```