0

Any suggestion here is highly appreciated.

I am building a Rest API (/inhouse) using Spring boot, which should call a third party API (/team).

End Goal:

/inhouse API {
   Sets Header and does a Get call on /team (3rd party API)
   Parse the response and apply some business logic
   Return the final data in JSON format
}

Front end Angular will utilize the final data

@GetMapping("/inhouse")
    public String getInhouse() {        
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
            headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
             headers.add("Authorization", "Basic " + aut);
                HttpEntity <String> entity = new HttpEntity<String>(headers);

          return restTemplate.exchange(apiUrl, HttpMethod.GET, entity, String.class).getBody();

    }

I'm currently getting an error:

Connection timed out: connect; nested exception is
java.net.ConnectException: Connection timed out: connect] with root cause
java.net.ConnectException: Connection timed out: connect

at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method) ~[na:1.8.0_191] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_191] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_191] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_191] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_191] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_191] at java.net.Socket.connect(Socket.java:589) ~[na:1.8.0_191] at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:666) ~[na:1.8.0_191] at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173) ~[na:1.8.0_191] at sun.net.NetworkClient.doConnect(NetworkClient.java:180) ~[na:1.8.0_191] at sun.net.www.http.HttpClient.openServer(HttpClient.java:463) ~[na:1.8.0_191] at sun.net.www.http.HttpClient.openServer(HttpClient.java:558) ~[na:1.8.0_191] at sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:264) ~[na:1.8.0_191] at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367) ~[na:1.8.0_191] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191) ~[na:1.8.0_191] at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1156) ~[na:1.8.0_191] at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1050) ~[na:1.8.0_191] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177) ~[na:1.8.0_191] at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162) ~[na:1.8.0_191] at org.springframework.http.client.SimpleBufferingClientHttpRequest.executeInternal(SimpleBufferingClientHttpRequest.java:76) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:734) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:669) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:607) ~[spring-web-5.1.4.RELEASE.jar:5.1.4.RELEASE]

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Sony
  • 63
  • 1
  • 3
  • 5

2 Answers2

0

I'm not sure if it will solve your problem, but it would worth a try:

@Bean
public RestTemplate restTemplate() {
  return new RestTemplate(new HttpComponentsClientHttpRequestFactory());
}

(I assume you had already tried accessing that endpoint manually from browser and it worked.)

Selindek
  • 3,269
  • 1
  • 18
  • 25
0

Unfortunately the issue was missing Proxies. The error message "Time Out" was really misleading. Once I added missing proxies, it worked.

Thanks for the help.

Sony
  • 63
  • 1
  • 3
  • 5