apachetomcat:多个webapps

apachetomcat:多个webapps,tomcat,web-applications,Tomcat,Web Applications,我正在使用ApacheTomcat开发一个Web应用程序。此webapp将部署在承载其他webapp的服务器中。现在,因为我的webapp需要用户进行身份验证,所以我需要修改Tomcat的“conf”目录中的一些文件,例如“Tomcat users.xml”。问题是这些文件与其他Web应用程序共享。有没有办法为我的webapp创建一个与共享目录分离的“conf”目录? 多谢各位 Tomcat允许您通过在名为[YourWebappName].xml的$CATALINA_BASE/conf/[eng

我正在使用ApacheTomcat开发一个Web应用程序。此webapp将部署在承载其他webapp的服务器中。现在,因为我的webapp需要用户进行身份验证,所以我需要修改Tomcat的“conf”目录中的一些文件,例如“Tomcat users.xml”。问题是这些文件与其他Web应用程序共享。有没有办法为我的webapp创建一个与共享目录分离的“conf”目录? 多谢各位

Tomcat允许您通过在名为
[YourWebappName].xml的
$CATALINA_BASE/conf/[enginename]/[hostname]
下面创建一个xml文件,从主
服务器.xml
进行配置

例如:
$CATALINA_BASE/conf/CATALINA/localhost/PetClinic.xml

此文件基本上包含一个定义webapp特定上下文配置的
元素。在这里,您可以使用应用程序所需的身份验证参数定义自己的特定于webapp的应用程序


此机制的设计使您可以修改特定于webapp的配置,而无需触及Tomcat的
conf
文件夹中的顶级共享文件。

非常感谢。我决定定义我的webapp的上下文,在我的webapp的META-INF目录中创建一个名为“context.xml”的文件。现在的问题是:我应该在这个.xml文件中写什么?我知道如何修改tomcat的“conf”文件夹中的“tomcat users.xml”和“server.xml”文件来实现身份验证,但我真的不知道如何在context.xml文件中转换这些更改。您可以帮助我吗?您可以在
Context.xml
文件中的
Context
元素的正下方嵌套一个
Realm
元素(您应该能够从
server.xml
中整体提升它)。您还可以为特定于webapp的用户创建一个
WEB-INF/users.xml
文件,这样您就不需要触摸
tomcat users.xml
。有一篇很好的文章(虽然已经有几年了,但应该仍然很好)带着文件应该是什么样子的示例指导您完成这篇文章。您不需要创建
conf/[enginename]/[hostname]/[YourWebappName].xml。
您可以在Web应用程序中提供META-INF/Context.xml。