Intellij Idea java.lang.ClassCastException:类...位于加载程序“app”的未命名模块中- spring-boot-dev-tools

yws3nbqq  于 2022-12-17  发布在  Java
关注(0)|答案(2)|浏览(217)

我们有一个较大的Sping Boot 应用程序,它会导致以下异常:

java.lang.ClassCastException: class jpa.XVersion cannot be cast to class jpa.XVersion (jpa.XVersion is in unnamed module of loader 'app'; jpa.XVersion is in unnamed module of loader org.springframework.boot.devtools.restart.classloader.RestartClassLoader @671ef14f)
    at y.package.abc(XService.java:70)
    at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:75)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

同时从IDEA IntelliJ中与JPA类的关系开始。
从普通命令行启动时,应用程序工作正常。
移除依赖项后

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
  <optional>true</optional>
</dependency>

IDE内的执行工作正常,没有任何问题。
我们正在使用:

  • 创意智能J 2020.1.2
  • Spring Boot 版本2.3.1,
  • JDK 11.0.7(采用开放式JDK),
  • ApacheMaven 3.6.3

是否有人已经观察到了这种问题?是否存在与删除依赖项不同的解决方案?

dxxyhpgq

dxxyhpgq1#

我删除了下面的依赖项,它工作了。
org.springframework. Boot spring-boot-devtools运行时为真

mhd8tkvw

mhd8tkvw2#

禁用Spring开发工具重新启动
你可以使用false属性来禁用重启功能,大多数情况下你可以在 application.properties 中设置(这仍然会初始化重启类加载器,但它不会监视文件的变化)。
如果您需要完全禁用重新启动支持,例如,因为它不适用于特定的库,则需要在调用SpringApplication.run(…​)之前设置 *System属性 *。
例如:

public static void main(final String[] args) {
    System.setProperty("spring.devtools.restart.enabled", "false");
    SpringApplication.run(Application.class, args);
}

参考Spring文档

相关问题