OAuth2 で保護された API を使用する必要があります。そのために、OAuth2RestTemplate を使用しています。しかし、エラーを下回っています:
java.net.ConnectException: Connection timed out: connect
これは、プロキシの問題が原因で発生しています。RestTemplate でプロキシを設定する方法を知っています:
SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("Proxy host", 8080));
clientHttpRequestFactory.setProxy(プロキシ); RestTemplate restTemplate = new RestTemplate(clientHttpRequestFactory);
OAuth2RestTemplateに設定しようとしたのと同じ方法:
@Bean
public OAuth2RestOperations restTemplate(OAuth2ClientContext oauth2ClientContext) {
OAuth2RestTemplate client = new OAuth2RestTemplate(resource(), oauth2ClientContext);
SimpleClientHttpRequestFactory clientHttpRequestFactory = new SimpleClientHttpRequestFactory();
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(PROXY_HOST, PROXY_PORT));
clientHttpRequestFactory.setProxy(proxy);
client.setRequestFactory(clientHttpRequestFactory);
return client;
}
しかし、それは機能しておらず、「接続がタイムアウトしました」という例外が発生しています。これはOAuth2RestTemplate client = new OAuth2RestTemplate(resource(), oauth2ClientContext);
、アクセストークンを取得しようとするこの最初の行が原因で発生しています。つまり、プロキシ設定も必要です。以下の行を追加すると動作します:
System.setProperty("https.proxyHost", "urproxy.com");
System.setProperty("https.proxyPort", "8080");
しかし、Tomcat サーバーに設定する権限がないため、System.setProperties("","") オプションを使用できません。
調査しましたが、このオブジェクトの作成中に OAuth2RestTemplate にプロキシを設定する方法が見つかりませんでした。
どんな助けでも大歓迎です。ありがとう