我必须在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内。 谁能告诉我哪里错了。
答案 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。