【问题标题】:How to set up Tomcat to use the config file in conf/Catalina/localhost?如何设置 Tomcat 以使用 conf/Catalina/localhost 中的配置文件?
【发布时间】:2018-11-10 13:54:13
【问题描述】:

所以我的问题是如何设置 Tomcat 服务器以使用此配置文件 conf/Catalina/localhost/MyApp.xml?

如果我的应用程序是这样命名的,它就像一个魅力:MyApp.war,所以 tomcat 会将存档解压缩到 MyApp。 但我想使用内部版本的名称,例如 MyApp##1.0-SNAPSHOT.war。 是否可以配置 tomcat 以便它仍然使用 MyApp.xml ?

【问题讨论】:

    标签: java tomcat web-applications configuration


    【解决方案1】:

    您可以设置上下文元素的pathdocBase 属性,如docs 中所述。 在$CATALINA_HOME/webapps 之外创建一个目录并将war 文件放在那里,比如说/opt/tomcat/wars/。然后将docBaseattribute 设置为您的战争的完整路径。使用户 tomcat 用户对该目录具有读取权限。如果战争在 webapps 目录中,您可能会根据 Host 元素的 deployOnStartup 和 autoDeploy 属性进行双重部署。

    <Context path="/MyApp" docBase="/opt/tomcat/wars/MyApp##1.0-SNAPSHOT.war">
    ...
    </Context>
    

    您也可以尝试将 xml 命名为与 war 文件相同。

    【讨论】:

    • 但我不想在任何地方“硬编码”war 文件的名称。如果部署了新版本 MyApp##1.1-SNAPSHOT.war,我必须编辑所有硬编码行。
    • 我认为你可以在 server.xml 中使用Host elementcopyXML 属性。那么 xml 名称应该跟在战争名称之后。在默认情况下,WEB-INF/context.xml 将被复制到conf/Catalina/localhost/,其基本名称与我猜想的战争相同。如果您需要将 xml 命名为 MyApp.xml 而不进行版本控制,则每次战争版本更改时都必须对其进行编辑。 Ant任务也可以用来部署,但我自己没用过。
    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 2019-07-19
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多