1

我想将 StringBuffer sb 中的 ping 流发送到服务器,但我得到了

java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission createSecurityManager)

请帮助仍在挣扎一天的人......

private void pushRawDataFilesToServer(StringBuffer sb) {
    URL url;
    try {
        url = new URL("http://<ip>:8080/<appname>/WritePingData");
        HttpURLConnection conn = null;
        try {
            conn = (HttpURLConnection)url.openConnection();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        conn.setDoOutput(true);
        conn.setDoInput(true);
        conn.setUseCaches(false);
        conn.setDefaultUseCaches(false);
        try {
            BufferedWriter serverbfw = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
            serverbfw.write(sb.toString());
            serverbfw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
4

2 回答 2

0

从下面的代码块调用我自己的函数后,我的问题终于解决了。

 AccessController.doPrivileged(new PrivilegedAction<String>() {
                        @Override
                        public String run() {
                            myFunctionToPing();
                            return null;
                        }
                    });
于 2013-10-08T06:30:08.507 回答
0

您不能在小程序中(在任何线程中)创建自己的 SecurityManager。SecurityManager 由本地系统配置,因为 SecurityManager 的全部目的是保护本地系统(因此允许 applet 控制自己的安全性是没有意义的)。

于 2013-10-03T14:51:39.673 回答