使用我的Java applet,我向www.google.fr运行了一个超文本传输协议请求,但是浏览器显示:"java.security.AccessControlException:访问被拒绝(“java.net.SocketPermission "”www.google.fr:80 "“connect,resolve ")”
我在我的applet上签名为:
keytool -genkey -alias keyName
keytool -selfcert -alias keyName
jarsigner appletName.jar keyName有时我会授权小程序执行。但有时不会出现具有权限的弹出窗口。
我用以下命令加载applet:
function loadApplet() {
console.log('loadApplet [start]');
$('#applet').html('<applet name="requestApplet" archive="applet.jar" code="GoogleRequest.class" height="10" width="10"></applet>');
console.log(document.requestApplet.methodOfApplet()); // <-- Exception
console.log('loadApplet [finish]');
}发布于 2012-07-15 00:17:01
你有什么JRE?我记得大约1.6版本(如果我没记错的话是.22)有一个关于网络的“安全升级”,在那之后,这种奇怪的事情开始发生。
原因是那些对javascript公开的Applet函数不能直接调用JRE的网络功能。您必须以某种方式将Javascript与applet内部的网络调用解耦。
我用一种“消息总线”实现了这一点。Javascript调用Applet公共函数,将"message“放入内部总线,由另一个applet读取消息并进行网络调用。啊,真灵。
https://stackoverflow.com/questions/11485223
复制相似问题