【问题标题】:Apache Tomcat: multiple webappsApache Tomcat:多个 web 应用程序
【发布时间】:2013-12-29 04:06:15
【问题描述】:

我正在使用 Apache Tomcat 开发一个 webapp。此 webapp 将部署在托管其他 webapps 的服务器中。现在,由于我的 webapp 需要用户进行身份验证,我需要修改 Tomcat 的“conf”目录中的一些文件,例如“tomcat-users.xml”。问题是这些文件与其他 webapps 共享。有没有办法让我的 webapp 有一个与共享目录分开的“conf”目录? 谢谢你。

【问题讨论】:

    标签: tomcat web-applications


    【解决方案1】:

    Tomcat 允许您通过在 $CATALINA_BASE/conf/[enginename]/[hostname] 下创建一个名为 [YourWebappName].xml 的 xml 文件,从主 server.xml 配置 separate out

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

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

    此机制旨在让您可以修改 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。有一篇很好的文章 here(虽然有几年历史了,但应该还是不错的)通过示例文件的外观引导您完成。
    • 你不需要创建conf/[enginename]/[hostname]/[YourWebappName].xml. 你可以在你的webapp中提供一个META-INF/Context.xml。
    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 2018-09-09
    • 1970-01-01
    • 2017-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多