如何在 context.xml 中设置上下文路径

How to set context path in context.xml

我必须在 tomcat 中部署我的 app.war 文件 7. .war 文件名后跟它的版本号。 在这里我需要设置一个上下文路径,这样实际的 url 将只包含应用程序名称(没有版本号)。

我的要求是,server.xml.

中不能有编辑

我的context.xml如下

<?xml version='1.0' encoding='utf-8'?>
<Context path="/app" docBase="app-1.0" debug="0" reloadable="true">

    <!-- Defines links to JNDI Data Sources -->
    <!-- Thus the server determines database connection. -->

    <ResourceLink
            name="..."
            global="..."
            auth="Container" type="javax.sql.DataSource"/>

    .....
    .....

</Context>

context.xml 位于 /META-INF 文件夹的 war 内。 谁能告诉我哪里错了

所有元素都在文档中: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Naming

对于您的用例,您可以尝试:

  • 更改您的版本号格式(从 app-1.0.0.war 到 app##1.0.0.war 例如)

  • 将您的 war 放在另一个文件夹中并创建一个 app.xml 在 $catalina.base/conf/Catalina/ 中包含:<Context path="/app" docBase="/path/to/app-1.0" debug="0" reloadable="true">

  • 避免让你的war带有版本号

遇到过类似的问题,找了很久才解决。它在 tomcat 站点上,但很难找到。这就是我所做的。

您的 war 文件将部署到 %CATALINA_BASE% 下的文件夹中。我把我的放在一个名为 deploy 的文件夹中。 (%CATALINA_BASE%/部署)

您将使用上述 war 文件的路径创建一个 XML 文件,并将其放在 %CATALINA_BASE%/conf/Catalina/localhost 中。 xml 文件的名称将成为您的上下文根。如果你的 war 文件的名称是 app1.2.war 并且你希望你的上下文根是 /app 你正在创建 app.xml: <?xml version='1.0' encoding='utf-8'?> <Context docBase="C:\tomcat7\Servers\server-app\deploy\app1.2" reloadable="false"/> (我的部署是 Windows,您显然必须针对不同的 OS 进行调整。)

此外,无论出于何种原因,让我们假设您希望上下文根为 /foo/Bar/app,将 xml 的名称更改为 foo#Bar#app.xml.