Search code examples
javaspringazureresttemplate

Error on external REST endpoint call using RestTemplate


My Code breaks when it reaches to this line.

String resp = restTemplate.postForObject(URL, json, String.class);

On my localhost its working fine but on dev-env server, The error is:

Error occured in java.lang.NoSuchMethodError: com.microsoft.applicationinsights.agent.internal.coresync.impl.ImplementationsCoordinator.httpMethodFinished(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IJ)V

The dev-env is Azure Application Service including Java 8 and Tomcat 9.


Solution

  • I got the problem and solution (For others who will get exact same issue as posted): Problem: restTemplate.postForObject() was failing, there was conflict because I was using setConnectTimeout(10000); for

    @Bean
    public RestTemplate restTemplate(){
      return new RestTemplate(clientHttpRequestFactory());
    }
    private ClientHttpRequestFactory clientHttpRequestFactory(){
      HttpComponentsClientHttpRequestFactory .......
      factory.setConnectTime(...);
      return factory
    }
    

    The problem was solved when I removed clientHttpRequestFactory() from restTemplate and configured default without the connect timeout. Now it's not conflicting.

    @Gaurav I will mark your answer because your response gave me an idea about the dependency conflict issue.