1

我正在尝试使用 Spring Boot DevTools 重新启动。我一直按照此处提供的说明进行操作:https ://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-devtools.html

我正在使用 gradle 并将其包含在我的 build.gradle 文件中:

bootJar {
    excludeDevtools = false
}

我创建 jar 文件并运行 jar 文件:

java -jar app.jar

我能够通过 Intellij 连接到正在运行的应用程序。当我进行更改时,我可以在 Intellij 控制台中看到更新的类已上传到正在运行的进程。在运行进程的日志中,我看到进程尝试重新启动。但是,该过程退出并吐出此日志:

org.springframework.beans.factory.BeanDefinitionStoreException:无法解析配置类[com.example.BootApplication];嵌套异常是 java.io.FileNotFoundException:类路径资源 [com/example/ExampleService.class] 无法打开,因为它不存在。

ExampleService 是我修改的类。

我试图用谷歌搜索一下,但什么也没找到。我在网上看了很多教程,但没有找到。

有没有人遇到过这个或者有什么我可以尝试的,将不胜感激。

4

1 回答 1

3

该问题基于文件编译的工作方式。当你编译一个文件时,它首先删除已经编译的文件,然后添加一个新文件。在此过程中,如果轮询时间过短,文件系统观察者会将其视为两次不同的更新(删除文件和添加新文件)。删除文件会触发从远程应用程序中删除文件并尝试在没有更改文件的情况下重新启动应用程序,因此会出现此错误。

我遇到了类似的问题,但通过在 application.properties 中添加以下内容解决了它

spring.devtools.restart.pollInterval=10s

您可以更改适合您的 pollInterval

于 2019-05-06T12:43:48.167 回答