当前位置: 首页 > 知识库问答 >
问题:

访问拒绝("java.net.Socket权限"错误发生时,我运行我的CLient项目在NetBeans

乔伯寅
2023-03-14

java.security.访问控制异常:拒绝访问(java.net.SocketPersion127.0.0.1:1099连接,解析)

我的服务器端工作正常,服务器上没有错误。。当我运行客户端代码时,我得到了这个拒绝访问的错误(“java.net.SocketPermission”“127.0.0.1:1099”“connect,resolve”)。

请任何专家帮助我:(

这是我的客户代码

/**
 *
 * @author saqibhussain
 */
public class ChatClient extends UnicastRemoteObject implements ChatClientIF, Runnable {
public ChatClient() throws RemoteException {
}
private ChatServerIF chat;
private String name = null;

protected ChatClient(String name, ChatServerIF chat) throws RemoteException {        this.name = name;
    this.chat = chat;
    chat.RegisterChatClient(this);
}

public void retrieveMessage(String msg) throws RemoteException {
    System.out.println(msg);
}

public void run() {
    Scanner scaner = new Scanner(System.in);
    String message;
    while (true) {
        try {
            message = scaner.nextLine();
            chat.broadcastMessage(name + " : " + message);
        } catch (RemoteException ex) {
            Logger.getLogger(ChatClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}

public static void main(String[] args) throws NotBoundException, MalformedURLException, RemoteException {
        System.setSecurityManager(new RMISecurityManager());

        try {
        String url = "rmi://localhost/RMIChatServer";
        ChatServerIF remoteObject = (ChatServerIF) Naming.lookup(url);
        System.out.println("Got remote object");
        new Thread(new ChatClient(args[0], remoteObject)).start();

        } catch (Exception e) {
        System.out.println(e);
        }
}
}

共有2个答案

孙斌
2023-03-14

您已经定义了一个SecurityManager,但您没有授予自己足够的权限来执行代码。您需要自己编写一个策略文件,并在通过-Djava启动时将其指定给JVM。安全策略=

或者,只需删除安全管理器。您不需要它,除非您正在使用RMI代码库功能

谭思博
2023-03-14

向客户端应用程序添加安全策略。您可以从以下位置下载示例策略:http://www.comp.lancs.ac.uk/~weerasin/csc253/tutorials/week8code/client。政策

之后,用以下vm参数启动客户机

java -Djava.security.policy==client.policy

在生产环境中要小心,因为给定的策略授予客户端执行的任何操作的权限。

 类似资料:
  • 我有一个从Ubuntu软件应用程序安装的IntelliJ IDEA Ultimate 2022.1.2。它被配置为使用Maven包装器。当我在java项目上执行“安装”时(从生命周期菜单),我得到两个错误: git测试: 协议测试: maven-wrapper.properties: 同样的项目在不同的机器上运行良好。不能解决问题。

  • 我添加了使用权限,包括WRITE_EXTERNAL_STORAGE,android.permission.相机,READ_EXTERNAL_STORAGEAndroidManifest.xml. 当我在Nexus6(API 24)中运行我的应用程序时,它向我抛出了以下错误: java.io.IOException:权限被拒绝 这是我的代码: 如何在权限相机运行时打开之前使用它?

  • 我在运行npm install时收到一个错误,用于反应应用程序...错误发生了一个意外错误:“EACCES:权限被拒绝,解除关联'/home/ats/react-app/myapp/node_modules/@babel/helper-mode-import/LICENSE'”。有人能帮我解决这个错误吗?

  • 我正在使用离子,我已经通过git从机器1到机器2获取了我的项目。 我的爱奥尼亚信息告诉我: [错误]错误/node\u模块/@离子/应用程序脚本/包。json文件:找不到file\u cli包:(/usr/local/lib/node\u模块) 本地套餐: 系统: 杂项: 当我运行sudo npm install时,我得到以下信息: npm WARN checkPermissions缺少对/Use

  • 此外,我运行(没有-g),但它不起作用。是否存在其他安装Typescript的方法?我的操作系统是Linux Ubuntu16.04。我很少使用,也不知道如何解决这个问题。 我的问题是:到底哪些目录需要该权限?

  • 我正在学习一个关于使用硒的教程,但我在开始学习时遇到了麻烦。也就是说,当我尝试运行下面的代码时,我得到了下面的错误。我见过其他有同样问题的用户,我试过他们的解决方案,他们都不起作用。 null