2011-02-05 12 views
1

ログインURIとの接続エラーGoogleスプレッドシート。私のMacからこのアプリケーションを実行すると、正常に動作します。しかし、専用サーバーで実行する必要があります。私は、エラーをグーグルで試してみましたが、それは示唆com.google.gdata.util.AuthenticationException:私は、次のコマンドで起動していたJavaアプリケーションを書いた

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 -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 

:私はそれをそこにアップロードし、それを実行しようとすると、私は次のエラーを受け取りますそれはしばしばプロキシによって引き起こされること、しかし、私は私の専用サーバーのプロキシの背後にいるわけではありません。私が書いた他のJavaアプリケーションはネットワークでうまく動作します。

これを修正する方法はありますか?すべての助けに感謝します。ありがとう!

答えて

1

SSL証明書を保持するトラストストアファイルがサーバー上に存在しないか、無効なものが含まれている可能性が高いため、エラーが発生する可能性があります。

これを試してみてください:サーバー上

  • を:見つける/ -name jssecacertsサーバーで
  • :見つける/ -nameのcacerts
  • は、これらのファイルが内に存在するパスに注意してください移動します。これらのファイルはどこかで、すなわち。 〜/ tmp/
  • あなたのtruststoreファイルをimac(おそらく/Library/Java/JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/security/cacerts)からあなたのサーバー、パスまた、あなたがkeytoolユーティリティとの両方のコンピュータ上のファイルを検査します(詳細についてJSSE Reference Guideを参照)との違いのためにそれらを比較することができ、アプリケーション

を再試行し、以前の

  • を見ました。

  • 関連する問題