question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

3.0.0-20200106.122158-51 breaks - Rest Data

See original GitHub issue

Please take the time to search the repository, if your question has already been asked or answered.

  • What version of the library are you using? 3.0.0 Snapshot

What kind of issue is this? Setup with Spring Data is breaking in latest Snapshot

  • Bug report. Spring has problems with the Hateos Link Provider.
    • include any output you’ve received; logs, json snippets etc.; and what the expected output
java.lang.IllegalStateException: Failed to introspect Class [springfox.documentation.spring.data.rest.schema.SpringDataRestSchemaExtensions] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@77556fd]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:507) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:404) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:389) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:447) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) ~[na:na]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:737) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:678) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:647) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1518) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:513) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:483) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:604) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:596) ~[spring-beans-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1226) ~[spring-context-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:866) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:854) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:841) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:792) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:322) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1204) ~[spring-boot-2.1.11.RELEASE.jar:2.1.11.RELEASE]
	at de.hda.y.vier.cloudengpraktikum.CloudEngPraktikum.main(CloudEngPraktikum.java:12) ~[main/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
	at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) ~[spring-boot-devtools-2.1.11.RELEASE.jar:2.1.11.RELEASE]
Caused by: java.lang.NoClassDefFoundError: org/springframework/hateoas/server/LinkRelationProvider
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166) ~[na:na]
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2309) ~[na:na]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:489) ~[spring-core-5.1.12.RELEASE.jar:5.1.12.RELEASE]
	... 26 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.hateoas.server.LinkRelationProvider
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
  • spring xml/java config that is relevant Spring Fox Config
@Configuration
@EnableSwagger2WebMvc
@Import({  springfox.documentation.spring.data.rest.configuration.SpringDataRestConfiguration.class})
public class SpringFox {

    /**
     * Swagger UI configuration.
     *
     * @return
     */
    @Bean
    //Visible under http://localhost:8080/swagger-ui.html
    public Docket apiDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .paths(Predicate.not(PathSelectors.regex("/error")))
                .paths(Predicate.not(PathSelectors.regex("/profile")))
                .paths(PathSelectors.any())
                .build()
                .useDefaultResponseMessages(false);
    }
}

Gradle Config Maybe Interesting

plugins {
    id 'org.springframework.boot' version '2.1.11.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
}

repositories {
    mavenCentral()
    maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' }
}

group = 'de.XXX.y.XX'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = JavaVersion.VERSION_11

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
    compileOnly {
        extendsFrom annotationProcessor
    }
}
ext {
    set('springCloudVersion', "Greenwich.SR4")
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
//    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.cloud:spring-cloud-starter-aws-messaging'

    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'


    // https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path
    compile group: 'com.jayway.jsonpath', name: 'json-path', version: '2.4.0'


    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'mysql:mysql-connector-java'

    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    compile group: 'io.springfox', name: 'springfox-swagger2', version: '3.0.0-SNAPSHOT'
    compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '3.0.0-SNAPSHOT'
    compile group: 'io.springfox', name: 'springfox-data-rest', version: '3.0.0-SNAPSHOT'

    testImplementation 'org.junit.jupiter:junit-jupiter-api'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}

test {
    useJUnitPlatform()
}

task unitTest(type: Test) {
    useJUnitPlatform {
        exclude '**/*IT.class'
    }
}

task integrationTest(type: Test) {
    useJUnitPlatform {
        exclude '**/*Test.class'
    }
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:14
  • Comments:14 (1 by maintainers)

github_iconTop GitHub Comments

4reactions
ethandeltadoritoscommented, Jan 9, 2020

Another way to temporarily make your app working is to specify the snapshot version to the latest one in 2019: To modify from:

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>3.0.0-SNAPSHOT</version>
</dependency>

to

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0-20190808.104142-39</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-data-rest</artifactId>
<version>3.0.0-20190808.104142-39</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-spring-web</artifactId>
<version>3.0.0-20190808.104142-38</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-schema</artifactId>
<version>3.0.0-20190808.104142-39</version>
</dependency>
3reactions
BiLuoHencommented, Jan 8, 2020

if you use maven, a temporary fix: image

Read more comments on GitHub >

github_iconTop Results From Across the Web

Oracle REST Data Services Download
Oracle REST Data Services 22.4. Use this link for the latest version update. * Oracle Free Use License. Version 22.4.0.340.1044 - December 12,...
Read more >
What is REST API (RESTful API)? - TechTarget
A RESTful API breaks down a transaction to create a series of small modules. Each module addresses an underlying part of the transaction....
Read more >
What's New-Tableau Server REST API
This topic summarizes changes made to the REST API for Tableau Server and Tableau Cloud. All versions include updated documentation.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found