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

时间:2016-04-26 12:58:50

标签: java tomcat7 context.xml contextpath

我必须在tomcat 7中部署我的app.war文件.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内。 谁能告诉我哪里错了。

2 个答案:

答案 0 :(得分:2)

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

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

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

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

  • 避免与版本号进行战争

答案 1 :(得分:0)

有类似的问题,我花了很长时间才找到解决方案。它位于tomcat网站上,但很难找到。这就是我所做的。

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

您将创建一个XML文件,其中包含上面war文件的路径,并将其放在%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上,你显然必须针对不同的操作系统进行调整。)

另外,无论出于什么原因,我们都希望您的上下文根目录为/ foo / Bar / app,将xml的名称更改为foo#Bar#app.xml。