【问题标题】:Spring Boot 1.5.13 - QueryDSL Query ClassNotFoundException?Spring Boot 1.5.13 - QueryDSL 查询 ClassNotFoundException?
【发布时间】:2018-05-24 04:46:28
【问题描述】:

我正在使用带有 QueryDSL 的 Spring Boot 1.5.13,每当我向控制器发出调用时,我都会收到以下 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 类就在那里。我该如何解决这个问题?

下面是我的pom.xmlQueryDSL

        <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>

【问题讨论】:

  • 干净的构建安装
  • 我试了几次,错误依旧
  • 你的目录结构是什么?

标签: java spring spring-boot querydsl


【解决方案1】:

当您构建或部署应用程序时,只需验证任何特定 jar 是否存在类似 invalid loc header (bad signature) 的警告(在您的情况下,可能是与 QAddress 类相关的 jar )。

如果任何 jar 显示此错误,则从 .m2 存储库中删除该文件夹并重建它,然后它将再次下载该 jar 并尝试重新启动您的应用程序。

【讨论】:

    【解决方案2】:

    对于遇到相同问题的任何人,此问题与 NetBeans 有关。当我开始使用 Intellij IDEA 时,问题就解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-10
      • 2017-08-01
      • 2021-03-10
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 2018-09-10
      相关资源
      最近更新 更多