首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java AccessControlException只包含LiveConnect

Java AccessControlException只包含LiveConnect
EN

Stack Overflow用户
提问于 2011-02-15 18:19:58
回答 1查看 711关注 0票数 0

只有当我用Javascript (LiveConnect)调用函数时,我才会得到访问错误。

applet调用一个函数postData并显示响应(这很好)。现在,如果我通过applets[]数组(如document.applets[0].postData )从Javascript调用此函数,则将得到套接字/权限错误:未指明的异常: java.security.AccessControlException:访问被拒绝(java.net.SocketPermission 174.132.167.66:80 connect,解析)

相同的函数内部工作很好,但是当从javaScript调用时,我会得到访问控制错误。

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

EN

回答 1

Stack Overflow用户

发布于 2011-03-21 13:02:52

我最近遇到了同样的问题,尤其是Mac上的Firefox。不过,我在我的街区里使用了SwingUtilities.invokeLater()

我的工作方式是将invokeLater调用封装在一个AccessController.doPrivileged()块中。例如,如果我的applet上有一个名为someAction()的方法可以从JavaScript调用,我会这样做:

代码语言:javascript
复制
void someAction() {
  AccessController.doPrivileged( new PrivilegedAction() {
     public Object run() {
        SwingUtilities.invokeLater( new Runnable() {
           public void run() {
              // some privileged action here
           }
        });
     }
  });
}

这种方法似乎解决了Firefox中的问题。不过,它不会解决Safari中相同的起源问题,例如,如果您想从与applet不同的域中为Javascript提供服务的话。

更新--我要提到的是,不需要invokeLater部件才能工作;这正是我碰巧使用的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5007724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档