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

时间:2013-10-03 12:54:18

标签: java url

我想将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();
        }
    }

2 个答案:

答案 0 :(得分:0)

您无法在applet中创建自己的SecurityManager(在任何线程中)。 SecurityManager由本地系统配置,因为SecurityManager的整个点是保护本地系统(因此允许applet控制其自身的安全性是没有意义的。)

答案 1 :(得分:0)

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

 AccessController.doPrivileged(new PrivilegedAction<String>() {
                        @Override
                        public String run() {
                            myFunctionToPing();
                            return null;
                        }
                    });