我将 Spring Boot 1.5.13 与 QueryDSL 一起使用,每当我向 Controller 发出调用时,我都会收到以下 ClassNotFoundException
Caused by: java.lang.ClassNotFoundException: api.model.QAddress
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_121]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_121]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) ~[na:1.8.0_121]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:161) ~[spring-boot-devtools-1.5.13.RELEASE.jar:1.5.13.RELEASE]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_121]
... 211 common frames omitted
但是,当我检查生成的包时,类 QAddress
就在那里。我该如何解决这个问题?
下面是我的QueryDSL
的pom.xml
:
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-jpa</artifactId>
</dependency>
<plugin>
<groupId>com.mysema.maven</groupId>
<artifactId>maven-apt-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<goals>
<goal>process</goal>
</goals>
<configuration>
<outputDirectory>target/generated-sources</outputDirectory>
<processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
</configuration>
</execution>
</executions>
</plugin>
最佳答案
当您构建或部署应用程序时,只需验证任何特定 jar 是否存在任何警告,例如无效的 loc header (错误签名)(在您的情况下,可能是与 QAddress 类相关的 jar)。
如果任何 jar 显示此错误,请从 .m2 存储库中删除该文件夹并重建它,然后它将再次下载该 jar 并尝试重新启动您的应用程序。
关于java - Spring Boot 1.5.13 - QueryDSL 查询 ClassNotFoundException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50501161/