Я написал приложение Java, которое я запуская с помощью следующей команды:com.google.gdata.util.AuthenticationException: Ошибка соединения с логином URI
java -jar MyApp.jar
Приложение использует библиотеки GData Java Google, чтобы отредактировать Google Spreadsheet. Когда я запускаю это приложение с моего Mac, он работает нормально. Однако мне нужно запустить его на моем выделенном сервере. Когда я загрузить его туда и попытаться запустить его, я получаю следующее сообщение об ошибке:
$ java -jar MyApp.jar
com.google.gdata.util.AuthenticationException: Error connecting with login URI
at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:489)
at com.google.gdata.client.GoogleAuthTokenFactory.setUserCredentials(GoogleAuthTokenFactory.java:346)
at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:362)
at com.google.gdata.client.GoogleService.setUserCredentials(GoogleService.java:317)
at org.graalcenter.stats.bot.GraalStatBot.main(GraalStatBot.java:42)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1574)
at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1557)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1150)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1127)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:423)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:850)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at com.google.gdata.client.GoogleAuthTokenFactory.makePostRequest(GoogleAuthTokenFactory.java:551)
at com.google.gdata.client.GoogleAuthTokenFactory.getAuthToken(GoogleAuthTokenFactory.java:487)
... 4 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at sun.security.validator.PKIXValidator.(PKIXValidator.java:75)
at sun.security.validator.Validator.getInstance(Validator.java:178)
at sun.security.ssl.X509TrustManagerImpl.getValidator(X509TrustManagerImpl.java:129)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:225)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:270)
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:973)
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:142)
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:533)
at sun.security.ssl.Handshaker.process_record(Handshaker.java:471)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:904)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1116)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1143)
... 11 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
at java.security.cert.PKIXParameters.(PKIXParameters.java:120)
at java.security.cert.PKIXBuilderParameters.(PKIXBuilderParameters.java:104)
at sun.security.validator.PKIXValidator.(PKIXValidator.java:73)
... 22 more
Это код, который вызывает ошибку:
public static void main(String[] args) {
FeedURLFactory factory = FeedURLFactory.getDefault();
SpreadsheetService service = new SpreadsheetService("my-app");
try {
service.setUserCredentials(USER_NAME, USER_PASSWORD, ACCOUNT_TYPE);
} catch (AuthenticationException ex) {
ex.printStackTrace();
System.exit(0);
}
}
Я попытался погуглить ошибку, и это предполагает что он часто вызван прокси; однако я не за прокси-сервером на моем выделенном сервере. Другие приложения Java, которые я написал, отлично работают с сетью.
Любые идеи, как исправить это? Вся помощь приветствуется. Благодаря!