我想将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();
}
}
答案 0 :(得分:0)
您无法在applet中创建自己的SecurityManager(在任何线程中)。 SecurityManager由本地系统配置,因为SecurityManager的整个点是保护本地系统(因此允许applet控制其自身的安全性是没有意义的。)
答案 1 :(得分:0)
最后我的问题在从下面的代码块调用我自己的函数后解决了。
AccessController.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
myFunctionToPing();
return null;
}
});