【问题标题】:use of [context].xml and web.xml for configuring web app使用 [context].xml 和 web.xml 来配置 Web 应用程序
【发布时间】:2012-02-13 04:20:36
【问题描述】:

我刚刚了解到我可以从“ServletContext”中检索参数和其他内容(即通过覆盖 contextInitialized)。

阅读tomcats context doc 表明我可以通过 web.xml 设置参数(用作默认值),然后用 [context].xml 文件覆盖它们。

第一个问题:这是设置默认属性并让服务器管理员覆盖它们的好方法吗?

首先有一个概述,它显示了各种可用的属性/参数应该使用什么样的参数?

通过玩弄它,我面临以下问题:如果我通过 tomcats Web 界面部署 Web 应用程序,则 [context].xml 将被完全忽略(控制台声明它已部署但 2nd 为空)

长话短说:如何正确使用 web.xml 和 [context].xml - 下面的链接没有多大帮助。

【问题讨论】:

    标签: java web-applications jakarta-ee tomcat configuration


    【解决方案1】:

    首先,通过 web.xml 声明(servlet/应用程序)上下文属性更好,因为这是官方 Java EE 支持的方式,所以如果您这样声明它们,它们将在您将应用程序部署到其他应用程序时工作Tomcat 以外的服务器。

    其次,我认为 Tomcat 覆盖参数值的规则是:

    如果你有一个 $CATALINA_BASE/conf/context.xml 并且你在它和 web.xml 中声明了相同的属性,那么 web.xml 中的那个将具有优先权

    如果您的应用程序中有一个 $CATALINA_BASE/conf/context.xml 和一个 context.xml 文件(在 META-INF 目录中),两者都具有相同的参数,即 META-INF/context 中的那个。 xml 将具有优先权。

    最后,如果三个文件都标有相同的参数,则 web.xml 中的那个将具有优先权。

    【讨论】:

    • thx 但我刚刚编辑了我的问题,覆盖参数的问题是一个错误:issues.apache.org/bugzilla/show_bug.cgi?id=50700 我必须将我的应用程序交付给管理员,他问我是否可以将配置外部化到 conf/ .../[context].xml 但我的主要问题仍然是 用于什么用例以及如何在 java 端获取它们(以及如何通过 tomcats context.xml 覆盖它们)
    猜你喜欢
    • 2013-10-03
    • 2013-08-21
    • 1970-01-01
    • 2011-11-25
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多