【问题标题】:difference between context.xml and server.xml?context.xml 和 server.xml 之间的区别?
【发布时间】:2012-07-18 13:40:22
【问题描述】:

Tomcat 的context.xml 和Tomcat 的server.xml 有什么区别?如果我想添加如下标签:

    <Resource name="jdbc/MyDs" auth="Container" type="javax.sql.DataSource"
     driverClassName="org.apache.derby.jdbc.ClientDriver"
     url="jdbc:derby://localhost:1527/my_database;create=true"
     username="me" password="me" maxActive="20" maxIdle="10" maxWait="-1" />

我应该在哪里添加它?

【问题讨论】:

标签: java jakarta-ee tomcat


【解决方案1】:

server.xml 用于服务器,context.xml 用于在该服务器上运行的应用程序。一台服务器上可能有多个 context.xml 文件(每个应用程序),但只有一个 server.xml。

【讨论】:

  • 我可以在其中一个xml中添加提到的标签吗?
  • 好像和应用有关,所以我建议把它加到context.xml中
  • 放在server.xml里面会不会出错?
  • 虽然您可以在 server.xml 中添加一些内容,但我仍然建议您只在其中放置服务器范围的设置(端口、池大小等...)。任何特定于应用的内容都应放在单独的上下文文件中。
  • @Matt 我在tomcat的conf文件夹中只有一个context.xml文件。每个应用程序是否有单独的 xml 文件?我有 2 个基于 tomcat 的项目。 But I see only 1 context.xml file in the conf folder .
【解决方案2】:

该条目可以放在 server.xml 中,也可以放在单独的上下文文件中。上下文 xml 文件可以特定于每个应用程序部署,而 server.xml 成为全局文件。

应用程序特定的上下文文件通常位于 catalina\localhost 文件夹中。

【讨论】:

    【解决方案3】:

    Tomcat Web 应用程序有一组称为部署描述符的配置,它们可以分为两组:依赖于服务器的 (context.xml) 和独立于服务器的 (web.xml)。

    server.xml - 存储在服务器端并描述 Tomcat 服务器的一般配置。此文件是唯一一个 Tomcat 服务器的文件。

    context.xml - 可以存储在服务器端 (conf/) 或嵌入网络应用程序 (META-INF/)。该文件包含依赖于服务器的配置,例如 Tomcat 服务器提供的 DataSources。

    web.xml - 可以存储在服务器端 (conf/) 或嵌入网络应用程序 (WEB-INF/)。该文件包含独立于服务器的配置,例如 servlet 映射。

    Tomcat conf/ 目录中服务器端的 Context.xml 和 web.xml 用于提供 Tomcat 的默认行为,如默认 servlet 映射。因此,每个服务器有一个 server.xml,每个 Web 应用程序有一对 context.xml/web.xml 文件。如果您想在多个应用程序之间共享配置,您应该使用 server.xml(例如,就像它用于安全领域一样)。否则 - server.xml/web.xml。在您的情况下,我建议您使用嵌入的 web 应用程序 context.xml。

    【讨论】:

    • 在最后两句中,您说“否则 - server.xml/web.xml”。是应该编辑成“context.xml/web.xml”还是保持为“server.xml/web.xml”?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 2020-05-10
    • 2014-09-20
    • 2010-10-28
    • 2015-10-04
    • 2012-08-12
    • 2011-02-18
    相关资源
    最近更新 更多