访问被拒绝(" java.net.SocketPermission"从另一个线程调用时

时间:2015-03-14 13:24:25

标签: java

我有一些java fxml应用程序,我发送一些http请求与apache httpclient。当我从DesignController调用我的函数时(在点击一些布局元素之后),一切正常:

@FXML
public void clickarea(MouseEvent event) {
    myFunction();
}

但是当我想从我的邮件应用程序类中调用它时(我使用runLater()因为没有它我得到了一个我可以从其他线程修改UI的例子):

Platform.runLater(() -> {
DesignController dc = (DesignController) fxmlLoader.getController();
        dc.myFunction();
    });

我收到一些错误:访问被拒绝(" java.net.SocketPermission" .... 当我检查控制台时,我可以看到:

network: Connecting http://149.126.77.9:80/ with proxy=DIRECT
java.io.IOException: Server returned HTTP response code: 503 for URL: http://149.126.77.9:80/crossdomain.xml

我不知道为什么在这些情况下同样的功能不同。为什么只有当我从主线程调用我的函数时才检查跨域文件?

我试图关闭检查此文件或设置503不是错误代码,但我不知道如何。

我还注意到,当我从主线程调用此功能时,我可以在控制台中看到:网络:连接http://IP .....但是当我从DesignController而不是IP调用它时我可以看到域

1 个答案:

答案 0 :(得分:0)

固定:

AccessController.doPrivileged(
    new PrivilegedAction<String>() {
        public String run() {
        Platform.runLater(() -> {
            myFunction();
        });
        return null;
        }
    }
);