Spring 启动应用程序。 运行 Intellij 在同一 类 上导致 ClassCastException
Spring Boot App. running with Intellij leads to ClassCastException on the same classes
我有一个 Spring 启动应用程序,它使用 Jetty 作为 Web 服务器,我还使用 gradle 将应用程序构建为可执行文件 .jar。
当我 运行 我的应用程序使用 IntelliJ 运行 或调试选项时,我突然在我的一个控制器中得到一个 class 转换异常:
ClassCastException: com.test.matan.GenericParameter can not be cast into com.test.matan.GenericParameter
和你看到的一样class。这个 class 是我开发的应用程序依赖模块的一部分。
当我 运行 我的应用程序带有可执行 jar: "java -jar my-app.jar" same 过程工作正常,没有异常并且转换工作正常。
我得出的结论是 IntelliJ 负责这个奇怪的问题 "bug",但我不明白我该如何解决它。 运行 直接从 IDE 申请更方便、更容易。
有什么想法吗?赞赏!
编辑:我使用的是 IntelliJ 2017,由于工作的网络限制暂时无法更新。
您可以尝试 clearing Intellij cache,这通常有助于解决此类奇怪的错误。
如果问题仍然存在,请检查您的 运行 配置并确保它与 java -jar my-app.jar
命令的作用相同。
这是因为 spring-boot-devtools
有一个 class 加载器,但 IntelliJ 有它自己的 class 加载器。从 pom.xml 中删除 spring-boot-devtools
为我解决了这个问题。
您也可以将其从项目的库列表中删除:
Project Settings -> Libraries -> find spring-boot-devtools -> delete
我有一个 Spring 启动应用程序,它使用 Jetty 作为 Web 服务器,我还使用 gradle 将应用程序构建为可执行文件 .jar。
当我 运行 我的应用程序使用 IntelliJ 运行 或调试选项时,我突然在我的一个控制器中得到一个 class 转换异常:
ClassCastException: com.test.matan.GenericParameter can not be cast into com.test.matan.GenericParameter
和你看到的一样class。这个 class 是我开发的应用程序依赖模块的一部分。
当我 运行 我的应用程序带有可执行 jar: "java -jar my-app.jar" same 过程工作正常,没有异常并且转换工作正常。
我得出的结论是 IntelliJ 负责这个奇怪的问题 "bug",但我不明白我该如何解决它。 运行 直接从 IDE 申请更方便、更容易。
有什么想法吗?赞赏!
编辑:我使用的是 IntelliJ 2017,由于工作的网络限制暂时无法更新。
您可以尝试 clearing Intellij cache,这通常有助于解决此类奇怪的错误。
如果问题仍然存在,请检查您的 运行 配置并确保它与 java -jar my-app.jar
命令的作用相同。
这是因为 spring-boot-devtools
有一个 class 加载器,但 IntelliJ 有它自己的 class 加载器。从 pom.xml 中删除 spring-boot-devtools
为我解决了这个问题。
您也可以将其从项目的库列表中删除:
Project Settings -> Libraries -> find spring-boot-devtools -> delete