2016-06-28 5 views
0

との仕事を動作しません私はYouTubeのOAuthのは、サーバーにlocalhostを

public class LocalServerReceiverRetriever { 

    private static final Logger logger = LoggerFactory 
      .getLogger(FileUploadController.class); 

    private static LocalServerReceiver localServerReceiver = null; 

    public static LocalServerReceiver getLocalServerReceiver(){ 
     if(localServerReceiver == null){ 
      localServerReceiver = new LocalServerReceiver.Builder().setPort(8081).build(); 
     }else{ 
      try { 
       localServerReceiver.stop(); 
      } catch (IOException e) { 
       logger.error(e.getMessage() + e.getCause()); 
      } 
      localServerReceiver = new LocalServerReceiver.Builder().setPort(8081).build(); 
     } 
     return localServerReceiver ; 
    } 
} 

のpublic static資格AUTHORIZE(一覧スコープ、文字列credentialDatastoreが)のIOException {

// Load client secrets. 
    // more code.... 

    // Build the local server and bind it to port 8081 
    LocalServerReceiver localReceiver = LocalServerReceiverRetriever.getLocalServerReceiver(); 

    logger.debug("localReceiver set up to 8081"); 

    // Authorize. 
    return new AuthorizationCodeInstalledApp(flow, localReceiver).authorize("user"); 
をスロー.. YouTubeのAPIのOAuthの2を実装しています

}

で働いているのはです。論理的には、コールバックURLをhttp://localhost:8081/CallBackに変更します。ローカルでは正常に動作しますが、パブリックIPを使用してAWSサーバにデプロイすると機能しません。

8081の例外として既に使用されているアドレスを表示していて、Googleの認証ページにリダイレクトしていない場合もあります。

答えて

0

これは単に、ポート8081がAWSの他のサービスによって占有されていることを意味します。サービスを停止するか、アプリケーションに8081以外の新しいポートを選択してください。それが動作します。

+0

OAuthの前に、8081は使用されていません。 OAuthを呼び出した後でなければ、Javaと同じプロセスIDが使用されています。 – swemon

+0

Javaと同じプロセスIDですか?とにかく他のポートを試してみませんか?あなたが選ぶどの港でも起こっていますか? –

関連する問題