我有一个很奇怪的问题:
与错误相关的堆栈跟踪如下所示:
java.lang.Throwable: Connection refused by server
at javafx.scene.web.WebEngine$LoadWorker.describeError(WebEngine.java:1461)
at javafx.scene.web.WebEngine$LoadWorker.dispatchLoadEvent(WebEngine.java:1400)
at javafx.scene.web.WebEngine$LoadWorker.access$1200(WebEngine.java:1278)
at javafx.scene.web.WebEngine$PageLoadListener.dispatchLoadEvent(WebEngine.java:1265)
at com.sun.webkit.WebPage.fireLoadEvent(WebPage.java:2443)
at com.sun.webkit.WebPage.fwkFireLoadEvent(WebPage.java:2287)
at com.sun.webkit.network.URLLoader.twkDidFail(Native Method)
at com.sun.webkit.network.URLLoader.notifyDidFail(URLLoader.java:883)
at com.sun.webkit.network.URLLoader.lambda$didFail$102(URLLoader.java:866)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Process finished with exit code 0
生成错误时正在执行的代码是:
public void oauth2GoogleLogin()
{
String clientId = "xxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com";
String redirectURI = "http://localhost:8080";
String clientSecret = "xxxxxxxxxxxxxxxxxxxxxxxx";
Login gc = GoogleConnect.getInstance();
gc.setClientId(clientId);
gc.setRedirectURI(redirectURI);
gc.setClientSecret(clientSecret);
gc.setScope("https://www.googleapis.com/auth/spreadsheets");
gc.setCallback(new LoginCallback() {
@Override
public void loginFailed(String errorMessage) {
super.loginFailed(errorMessage);
}
@Override
public void loginSuccessful() {
super.loginSuccessful();
System.out.println("Logged in.");
token = gc.getAccessToken().getToken();
//saveData();
}
});
if(!gc.isUserLoggedIn()){
gc.doLogin();
}else{
....some code to do stuff...
}
}
正如我已经说过的,这段代码在我编写它的计算机上工作得很好,但是如果我将Intellij/Codename一个项目传输到另一台计算机上,它就不再工作了。
在我看来,问题可能在于回调,拒绝连接的服务器可能是通过http://localhost:8080访问的自己的计算机。但我不确定。有人能指点我吗?
发布于 2017-03-18 06:11:16
如果这两台机器都不再工作,这就更有道理了,JavaFX最新版本的web浏览器的回归破坏了Google OAuth2进程。
不幸的是,这是个大问题。我们无法修复JavaFX,如果他们推出一个坏的更新,我们将陷入困境。
解决方法可能是尝试VM的旧版本,例如1.8.67或其他什么。
https://stackoverflow.com/questions/42642601
复制相似问题