0

我有一个与 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();
        }
    }
}```
4

0 回答 0