我有一个 Spring Boot 应用程序,它使用 Jetty 作为 Web 服务器,我还使用 gradle 将应用程序构建为可执行的 .jar。
当我使用 IntelliJ 运行或调试选项运行应用程序时,我突然在其中一个 Controller 内出现类转换异常:
ClassCastException: com.test.matan.GenericParameter can not be cast into com.test.matan.GenericParameter
正如你所看到的,它是同一个类。这个类是我开发的应用程序依赖模块的一部分。
当我使用可执行 jar 运行我的应用程序时:“java -jar my-app.jar”,相同过程工作得很好,没有异常,并且转换按预期工作正常。
我得出的结论是 IntelliJ 负责这个奇怪的“bug”,但我不明白如何修复它。直接从 IDE 运行应用程序更加方便和容易。
有什么想法吗?赞赏!
编辑:我使用的是IntelliJ 2017,由于工作网络限制,暂时无法更新。
最佳答案
发生这种情况是因为 spring-boot-devtools
有一个类加载器,但 IntelliJ 有它自己的类加载器。从 pom.xml 中删除 spring-boot-devtools 解决了这个问题。
您也可以将其从项目的库列表中删除:
Project Settings -> Libraries -> find spring-boot-devtools -> delete
关于java - Spring 启动应用程序。使用 Intellij 运行会导致在相同的类上出现 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57134698/