Tomcat:"webapps/" 文件夹和 "webapps/ROOT/" 文件夹之间的区别
Tomcat: Difference Between "webapps/" folder and "webapps/ROOT/" folder
我注意到这些文件夹具有非常不同的属性。我最近在 webapps 文件夹下部署了一个 .war 文件。我注意到,一旦部署了 .war 文件,项目的未压缩版本就会添加到目录中。当我尝试修改未压缩版本中的任何文件时,Tomcat 服务器不会更改我的应用程序的行为(当 运行 我的应用程序通过 Web 浏览器时我看不到更改)。但是,如果我将同一个项目放在 webapps/ROOT 下,我的应用程序中的更改将导致我的应用程序的行为发生瞬时变化(可以通过浏览器看到)。
这是另一个例子。我目前在某些应用程序上遇到 HTTP 415 错误。当我使用文件夹 webapps 下的 .war 文件部署它时,出现该错误。但是,如果我将应用程序的未压缩版本放在 webapps/ROOT 下,错误就会消失并且我的应用程序可以正常运行。
这引出了我的问题。这两个文件夹有何不同?什么可以解释这些文件夹之间的差异?
在尝试了不同的东西之后,这是我发现的:
我意识到文件夹 webapps 是定义为服务器 'appBase' 的文件夹。 (这个变量可以在 server.xml 文件中配置,位于 conf 文件夹中,从你的 apache tomcat 的根文件中可以看出)换句话说,它作为 Tomcat 搜索应用程序。
然而,没有被告知的是 Tomcat 不会进入文件夹;这就是为什么我的网络应用程序可以在 webapps 下获得更新并收到错误,但在 ROOT 下却不能。我知道这一点是因为我将 'appBase' 变量直接更改为我的应用程序所在的位置,突然它们显示来自 tomcat.
的错误
如果在 'appBase' 定义的路径下对 Web 应用程序进行了更改,则需要以特定方式重新加载它们。一种是使用 Tomcat 管理器功能,另一种是删除工作文件夹中的文件(从主 Apache Tomcat 文件夹中找到。继续单击工作文件夹中的文件夹,直到到达您的Web 应用程序的主文件夹)。 Tomcat 管理器功能可能是一项更繁琐的任务,因为需要了解如何为 tomcat 配置用户(在 tomcat-users.xml 中,位于conf 文件夹),并且这方面的文档是有限的。第二种解决方案,即删除在工作文件夹下找到的 Web 应用程序,可以在 tomcat 为 运行 时完成,并将立即实施您的更改。
在另一个 Stack Overflow 上可以找到更多详细信息 post:How to force tomcat to reload recently compiled class/war files
我注意到这些文件夹具有非常不同的属性。我最近在 webapps 文件夹下部署了一个 .war 文件。我注意到,一旦部署了 .war 文件,项目的未压缩版本就会添加到目录中。当我尝试修改未压缩版本中的任何文件时,Tomcat 服务器不会更改我的应用程序的行为(当 运行 我的应用程序通过 Web 浏览器时我看不到更改)。但是,如果我将同一个项目放在 webapps/ROOT 下,我的应用程序中的更改将导致我的应用程序的行为发生瞬时变化(可以通过浏览器看到)。
这是另一个例子。我目前在某些应用程序上遇到 HTTP 415 错误。当我使用文件夹 webapps 下的 .war 文件部署它时,出现该错误。但是,如果我将应用程序的未压缩版本放在 webapps/ROOT 下,错误就会消失并且我的应用程序可以正常运行。
这引出了我的问题。这两个文件夹有何不同?什么可以解释这些文件夹之间的差异?
在尝试了不同的东西之后,这是我发现的:
我意识到文件夹 webapps 是定义为服务器 'appBase' 的文件夹。 (这个变量可以在 server.xml 文件中配置,位于 conf 文件夹中,从你的 apache tomcat 的根文件中可以看出)换句话说,它作为 Tomcat 搜索应用程序。
然而,没有被告知的是 Tomcat 不会进入文件夹;这就是为什么我的网络应用程序可以在 webapps 下获得更新并收到错误,但在 ROOT 下却不能。我知道这一点是因为我将 'appBase' 变量直接更改为我的应用程序所在的位置,突然它们显示来自 tomcat.
的错误如果在 'appBase' 定义的路径下对 Web 应用程序进行了更改,则需要以特定方式重新加载它们。一种是使用 Tomcat 管理器功能,另一种是删除工作文件夹中的文件(从主 Apache Tomcat 文件夹中找到。继续单击工作文件夹中的文件夹,直到到达您的Web 应用程序的主文件夹)。 Tomcat 管理器功能可能是一项更繁琐的任务,因为需要了解如何为 tomcat 配置用户(在 tomcat-users.xml 中,位于conf 文件夹),并且这方面的文档是有限的。第二种解决方案,即删除在工作文件夹下找到的 Web 应用程序,可以在 tomcat 为 运行 时完成,并将立即实施您的更改。
在另一个 Stack Overflow 上可以找到更多详细信息 post:How to force tomcat to reload recently compiled class/war files