Eclipse 防止Spring引导在静态内容上保持文件锁定
从弹簧靴: “默认情况下,Spring Boot将提供来自名为Eclipse 防止Spring引导在静态内容上保持文件锁定,eclipse,spring-boot,Eclipse,Spring Boot,从弹簧靴: “默认情况下,Spring Boot将提供来自名为 /static(或/public或/resources或/META-INF/resources)中的 类路径或从ServelContext的根目录[sic]“ 为了利用这种行为,我在src/main/resources中添加了一个static文件夹。果然,SpringBoot提供了这些静态内容。在Eclipse中它看起来像这样: 然而,Spring Boot必须以某种方式在静态内容上保留一个文件锁,因为每当我更改静态内容时,都会出
/static
(或/public
或/resources
或/META-INF/resources)
中的
类路径或从ServelContext的根目录[sic]“
为了利用这种行为,我在src/main/resources
中添加了一个static
文件夹。果然,SpringBoot提供了这些静态内容。在Eclipse中它看起来像这样:
然而,Spring Boot必须以某种方式在静态内容上保留一个文件锁,因为每当我更改静态内容时,都会出现如下Eclipse项目错误:
我必须停止应用程序,以获得该项目的建设,这是真的很烦人!有人对此有解决方案吗?这看起来像是spring webmvc中的org.springframework.web.servlet.resource.ResourceHttpRequestHandler中的一个bug,已通过最新提示修复 这是使用从
ClassPathResource
中提取的InputStream
而未关闭的有问题的代码块:
protected void writeContent(HttpServletResponse response, Resource resource) throws IOException {
StreamUtils.copy(resource.getInputStream(), response.getOutputStream());
}
请参阅错误报告。我从未遇到过这个问题。你在哪个站台?此外,该路径中的“bin”目录也是可疑的,因为Eclipse将其用于“本机”Java项目,而Maven或Gradle则不使用它。您使用的是Maven还是Gradle,如果不是,为什么不呢?不幸的是,这是一个Windows平台。bin目录很有趣,Eclipse项目是一个Gradle项目。当然,我只是允许Eclipse构建源代码并从那里运行它,而不是从Gradle。如果从命令行(“mvn spring boot:run”)运行,它能工作吗?它能工作,但是我不能用通常的方式调试应用程序。