当前位置: 首页 > 知识库问答 >
问题:

JAVAlang.ClassCastException:类。。。位于加载程序“app”-Spring Boot开发工具的未命名模块中

魏明亮
2023-03-14

我们有一个更大的Spring启动应用程序,它会导致以下异常:

    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内部的执行工作正常,没有任何问题。

我们正在使用:

  • 创意智能2020.1.2
  • Spring Boot Version 2.3.1,
  • JDK 11.0.7(采用开放式JDK),
  • Apache Maven 3.6.3

有人已经观察到这种问题了吗?是否存在一个不同的解决方案,然后删除依赖?

共有2个答案

呼延英奕
2023-03-14

我删除了下面的依赖关系,它起作用了。

赵鸿畴
2023-03-14

禁用Spring开发工具重启

您可以使用Spring禁用重启功能。开发工具。重新启动。已启用属性设置为false。在大多数情况下,您可以在应用程序中进行设置。属性(这仍将初始化重新启动类加载器,但不会监视文件更改)。

如果您需要完全禁用重启支持,例如,因为它不适用于特定的库,您需要在调用SpringApplication.run(...)之前设置一个System属性。

例如:

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

参考spring文档

 类似资料: