使用spring-data-commons 1.13.6时出现QuerydslUtils类找不到错误
解决spring-data-commons 1.13.6.RELEASE下的
NoClassDefFoundError: QuerydslUtils问题 这个错误的核心原因是版本不兼容:你使用的spring-data-dynamodb 5.0.2依赖了org.springframework.data.querydsl.QuerydslUtils类,但这个类是spring-data-commons 2.x版本才新增的,而你当前用的是1.13.6.RELEASE(属于1.x老分支),自然找不到这个类。
解决方案
这里提供两种可行思路,你可以根据项目实际情况选择:
1. 降级spring-data-dynamodb到兼容版本
spring-data-dynamodb 4.x系列是专门适配spring-data-commons 1.x分支的,比如你可以把spring-data-dynamodb的版本降到4.5.1,这个版本和spring-data-commons 1.13.6.RELEASE完全兼容,能直接解决类找不到的问题。
2. 升级spring-data-commons及相关Spring组件
如果你想保留spring-data-dynamodb 5.0.2,需要把spring-data-commons升级到2.x系列(比如2.0.10.RELEASE),同时记得把Spring核心组件(比如spring-beans、spring-context等)升级到5.x版本——因为spring-data-commons 2.x依赖Spring 5.x,避免出现其他版本冲突问题。
你提供的堆栈跟踪信息
Caused by: java.lang.NoClassDefFoundError: org/springframework/data/querydsl/QuerydslUtils at org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBRepositoryFactory.isQueryDslRepository(DynamoDBRepositoryFactory.java:142) ~[spring-data-dynamodb-5.0.2.jar:5.0.2] at org.socialsignin.spring.data.dynamodb.repository.support.DynamoDBRepositoryFactory.getRepositoryBaseClass(DynamoDBRepositoryFactory.java:135) ~[spring-data-dynamodb-5.0.2.jar:5.0.2] at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepositoryInformation(RepositoryFactorySupport.java:253) ~[spring-data-commons-1.13.6.RELEASE.jar:na] at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:195) ~[spring-data-commons-1.13.6.RELEASE.jar:na] at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:277) ~[spring-data-commons-1.13.6.RELEASE.jar:na] at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:263) ~[spring-data-commons-1.13.6.RELEASE.jar:na] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624) ~[spring-beans-4.3.10.RELEASE.jar:4.3.10.RELEASE] ... 29 common frames omitted Caused by: java.lang.ClassNotFoundException: org.springframework.data.querydsl.QuerydslUtils at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_144] at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_144] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_144] at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_144] ... 37 common frames omitted
内容的提问来源于stack exchange,提问作者himanshuraipur
相关产品推荐
相关产品推荐

