我有一些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调用它时我可以看到域
答案 0 :(得分:0)
固定:
AccessController.doPrivileged(
new PrivilegedAction<String>() {
public String run() {
Platform.runLater(() -> {
myFunction();
});
return null;
}
}
);