Currently in my POC I am trying to get the list of gcp projects using java SDK, but when I am executing the API after 20 seconds getting "java.net.SocketTimeoutException: connect timed out"
Note: In my code already I have set the setConnectTimeout value as 3 mins.
Here is my code snippet:
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleCredential credential = GoogleCredential.fromStream(
new ByteArrayInputStream(credentials.getBytes(Charset.forName("UTF-8"))));
if (credential.createScopedRequired()) {
credential = credential.createScoped(
Arrays.asList("https://www.googleapis.com/auth/cloud-platform"));
}
CloudResourceManager cloudResourceManager= new CloudResourceManager.Builder(new NetHttpTransport(), jsonFactory,
setHttpTimeout(credential)).setApplicationName("Google-CloudResourceManagerSample/0.1").build();
List<Project> projects = cloudResourceManager.projects().list().execute().getProjects();
private static HttpRequestInitializer setHttpTimeout(final HttpRequestInitializer requestInitializer) {
return httpRequest -> {
requestInitializer.initialize(httpRequest);
httpRequest.setConnectTimeout(3 * 60000)// 3 minutes connect timeout
.setReadTimeout(3 * 60000); // 3 minutes read timeout
};
}
ErrorTrace:
java.net.SocketTimeoutException: connect timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at
java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:607)
at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:681)
at sun.net.NetworkClient.doConnect(NetworkClient.java:175)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:463)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:558)
at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
Can you please help me on it.