首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tomcat: webapps/文件夹和webapps/ROOT/文件夹的区别

Tomcat: webapps/文件夹和webapps/ROOT/文件夹的区别
EN

Stack Overflow用户
提问于 2019-03-21 06:39:06
回答 1查看 1.8K关注 0票数 0

我注意到这些文件夹具有非常不同的属性。我最近在webapps文件夹下部署了一个.war文件。我注意到,一旦部署了.war文件,就会将该项目的未压缩版本添加到目录中。当我尝试修改未压缩版本中的任何文件时,Tomcat服务器不会更改我的应用程序的行为(当我通过web浏览器运行我的应用程序时,我看不到更改)。但是,如果我将这个项目放在webapps/ROOT目录下,应用程序中的更改将导致应用程序行为的即时更改(可以通过浏览器查看)。

这是另一个例子。我目前在一些应用程序上有HTTP 415错误。当我使用webapps文件夹下的一个.war文件部署它时,我得到了这个错误。但是,如果我将应用程序的未压缩版本放在webapps/ROOT目录下,错误就会消失,并且我的应用程序可以正常工作。

这就引出了我的问题。这两个文件夹有什么不同?如何解释这些文件夹之间的差异?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 03:29:15

在尝试了不同的方法之后,这是我发现的:

我意识到webapps文件夹就是定义为服务器的“appBase”的文件夹。(这个变量可以在server.xml文件中配置,该文件位于conf文件夹中,可以从apache Tomcat的根文件中看到)换句话说,它是Tomcat搜索应用程序的直接位置。

然而,没有被告知的是,Tomcat不会进入文件夹;这就是为什么我的web应用程序可以在webapps下更新并收到错误,而不是在ROOT下。我之所以知道这一点,是因为我直接将'appBase‘变量更改为我的应用程序所在的位置,突然它们显示来自tomcat的错误。

如果在“appBase”定义的路径下对web应用程序进行了更改,则需要以特定方式重新加载它们。一种是使用Tomcat管理器功能,另一种是删除工作文件夹中的文件(可从Apache Tomcat主文件夹中找到)。不断单击工作文件夹中的文件夹,直到到达web应用程序的主文件夹。Tomcat Manager功能的实现可能更加繁琐,因为您需要了解如何为tomcat配置用户(在tomcat-users.xml中,位于conf文件夹下),并且有关这方面的文档有限。第二个解决方案是删除在工作文件夹下找到的web应用程序,可以在tomcat运行时完成,并将立即实施您的更改。

更多细节可以在另一篇堆栈溢出帖子中找到:How to force tomcat to reload recently compiled class/war files

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55271205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档