gpt4 book ai didi

Java AccessControlException 仅适用于 LiveConnect

转载 作者:行者123 更新时间:2023-11-28 21:26:05 26 4
gpt4 key购买 nike

仅当我使用 Javascript (LiveConnect) 调用函数时,才会出现访问错误。

小程序调用函数 postData 并显示响应(这非常有效)。现在,如果我通过 applet[] 数组(如 document.applets[0].postData)从 Javascript 调用此函数,我会收到 Socket/Permissions Error: uncaught exception: java.security.AccessControlException: access returned ( java.net.SocketPermission 174.132.167.66:80 连接,解析)

内部调用的同一函数效果很好,但从 javaScript 调用时出现访问控制错误。

以前有人遇到过这样的问题吗?

最佳答案

我最近遇到了同样的问题,特别是在 Mac 上使用 Firefox 时。不过,我在我的 block 中使用了 SwingUtilities.invokeLater()

我解决这个问题的方法是将 invokeLater 调用包装在 AccessController.doPrivileged() block 中。例如,如果我的小程序上有一个名为 someAction() 的方法,可以从 JavaScript 调用,我会这样做:

void someAction() {
AccessController.doPrivileged( new PrivilegedAction() {
public Object run() {
SwingUtilities.invokeLater( new Runnable() {
public void run() {
// some privileged action here
}
});
}
});
}

这种方法似乎解决了我在 Firefox 中的问题。不过,它并不能解决 Safari 中的同源问题,例如,如果您想从与小程序不同的域提供 Javascript。

更新我应该提到的是,这个工作不需要 invokeLater 部分;这正是我碰巧使用的。

关于Java AccessControlException 仅适用于 LiveConnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com