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

Spring Boot开发工具重新启动不工作

党祖鹤
2023-03-14

我正在尝试重新开始使用Spring Boot开发工具。我一直遵循此处提供的说明: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控制台中看到更新的类被上传到正在运行的进程中。在运行进程的日志中,我看到进程试图重新启动。但是,该过程将退出并抛出此日志:

组织。springframework。豆。工厂BeanDefinitionStoreException:未能分析配置类[com.example.BootApplication];嵌套的异常是java。木卫一。FileNotFoundException:无法打开类路径资源[com/example/ExampleService.class],因为它不存在。

ExampleService是我修改过的类。

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

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

共有1个答案

廉雅惠
2023-03-14

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

我曾经遇到过类似的问题,但通过在应用程序中添加以下内容来解决它。性质

spring.devtools.restart.pollInterval=10s

你可以改变适合你的间隔

 类似资料:
  • 我在网上看了很多关于< code > spring-boot-dev tools 的文章和问题,但是仍然不明白为什么它对我不起作用。每次运行我的应用程序,我都会得到以下信息: 每当我更改其中一个控制器文件时,什么也没发生。所以我遇到了一篇文章,提到我应该尝试将添加到我的应用程序属性文件中。使用 src 将不起作用,因为它会认为这是一个绝对路径,所以我将其更改为 。完成此操作后,将新endpoint

  • 我有一个活动,我们称之为FirstActivity.java,它有一个带有通过片段实例化的导航抽屉的actionBar。在这个片段NavigationDrawerFragment.java中,为了实例化ActionBar,我将方法onCreateOptionsMenu(菜单菜单,MenuInflater inflater)、onOptionsItemSelected(MenuItem项)和onPr

  • 默认情况下,这些工具会在chrome窗口的底部打开。对于宽屏幕显示器来说,这是一个相当糟糕的选择,因为右侧有大量的空空间,但没有多少垂直空间可供备用。不幸的是,我没有办法重新定位工具。我想有他们在旁边,类似于Firebug。 与我想要的类似的唯一选项是分离开发工具,并将chrome和工具窗口并排放置。这对于从IDE到浏览器和返回的快速Alt-Tab不是很方便,所以一个“集成”的解决方案会很好。

  • 与 LFS 的标准做法不同,本文为了尽可能摆脱宿主系统的影响,做完工具链之后不是chroot进入虚根环境,而是做一些必要的准备工作,然后重新启动计算机,进入一个完全与宿主系统无关的工具链环境,再继续完成目标系统的构建。 创建基础目录结构、必需的符号连接与文件、存储随机数种子、用户和组([注意]pgsql属于www组,root的密码是"123"): [提示]如果现在就将 mtab 指向 /proc/

  • 测试是 Web 应用开发过程中不可获缺的工作。Nuxt.js 尽量帮助你简化这部分工作。 端对端测试 ava 是一个很强大的 JavaScript 测试框架,结合 jsdom,我们就可以轻松地给 nuxt 应用进行端对端测试。 首先,我们需要添加 ava 和 jsdom 作为项目的开发依赖: npm install --save-dev ava jsdom 然后在 package.json 中添加

  • 第三方 SDK C#: v2ray-dotnet-sdk 自动化工具 V2Ray 使用下列自动化工具进行编译和发布。 Bazel: 用于编译和打包。 Azure DevOps: 用于部分项目的自动化发布。 Google Cloud: 用于部分项目的自动化发布。 CloudFlare: 用于支持官网和域名解析。