Search code examples
javaspringresttemplate

Exception in Rest Template : Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/log/LogDelegateFactory


Method in my code :

public static <T> ResponseEntity<T> get(String url, HashMap<String,String> parameters, HashMap<String,String> headers, Class<T> responseType){
        System.out.println(url);
        return new RestTemplate().exchange(
            String.format("%s%s",url, toQueryString(parameters)),
            HttpMethod.GET,
            toHttpEntity(headers), responseType);
    }

While requesting for new object of Rest Template , it gives me below exception on -->new RestTemplate():

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/log/LogDelegateFactory at org.springframework.http.HttpLogging.forLog(HttpLogging.java:68) at org.springframework.http.HttpLogging.forLogName(HttpLogging.java:57) at org.springframework.http.client.support.HttpAccessor.(HttpAccessor.java:54) at org.springframework.http.client.support.InterceptingHttpAccessor.(InterceptingHttpAccessor.java:45) at org.springframework.web.client.RestTemplate.(RestTemplate.java:137)

dependency in pom.xml

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.2.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.0</version>
        </dependency>

Solution

  • You need to have spring core on your classpath.

    Try adding

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>5.2.8.RELEASE</version>
    </dependency>