gpt4 book ai didi

Spring Boot WAR 与 JAR 文件路径差异

转载 作者:行者123 更新时间:2023-11-28 22:18:06 25 4
gpt4 key购买 nike

我创建了一个使用 Groovy、WAR 和 Gradle 进行设置的应用程序,而不是我为项目选择的 JPA、MVC 等...。每当我从 STS 启动它进行测试和处理时,我一直在研究它并将其作为 Spring Boot 项目运行。

为了体验启动应用程序的体验,我决定生成 WAR 并将其放入 Tomcat 品牌实例中是一个很好的时机。

我遇到的错误都与文件路径有关,主要是 FileNotFoundException。我在 src/main/resources/static 下有一个目录,我放置了所有静态内容、css 等...当我在外部 Tomcat 中运行 WAR 时,它在 Tomcat 中寻找静态内容/bin/ 目录。如果我将文件复制到该目录并重新启动 Tomcat,它就可以正常工作。

我试图跨越的最大障碍是知道文件路径究竟是如何传输到 WAR 的,以及我应该把文件放在哪里。我以为我走在正确的道路上,但也许我误解了它的工作原理。

编辑

只是为了测试,我将 WAR 文件作为可执行文件运行,它开箱即用。我只有在将它带到现有 Tomcat 实例时才会遇到问题。这或多或少是为了了解它是如何工作的,并通过适当的设置让它正常工作,这就是我所追求的。

编辑

我明白为什么是/bin目录了;这与我从哪里启动它有关。我正在从该目录运行 ./catalina run,而这恰好是它当时想要静态资源所在的目录。

最佳答案

首先,我要感谢 Evgeni 的评论,并在正确的方向上帮助了我。我接受了他关于创建一个新项目的建议,以确定可能出了什么问题。这样做之后,我能够消除我面临的 gradle 错误,一切都在朝着正确的方向发展。

我提出的问题的答案:war 与 jar 文件路径之间的区别...

如果您的项目配置正确,则没有任何区别。我遇到了路径问题,因为它们是这样硬编码的: src/main/resources... 在我试图从中访问资源的 Controller 和其他类中。一旦我能够通过替换资源的硬编码路径来解决该问题,我就不再遇到路径问题,并且能够在外部 Tomcat 中运行 war,也可以作为独立的可执行文件运行。

关于Spring Boot WAR 与 JAR 文件路径差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com