将应用部署到Tomcat根目录的目的是可以通过http://[ip]:[port]
直接访问应用,而不是使用http://[ip]:[port]/[appName]
上下文路径进行访问。举个栗子: 我要部署的是 myblog.war 文件,那么自己部署到 webapps文件夹中,我就要这样访问www.moewah.com/myblog
,但是我只想根目录下访问www.moewah.com
。
怎么办?下面提供三种解决办法来实现这一需求。
方法一:(最简单直接的方法)
删除 原 webapps/ROOT
目录下的所有文件,将应用下的所有文件和文件夹复制到ROOT
文件夹下。
方法二:
删除 原 webapps/ROOT
目录下的所有文件,修改文件 conf/server.xml
,在Host
节点下增加如下Context
的内容配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
......
<Context path="" docBase="C:/apache-tomcat-6.0.32/myapps/bc.war"></Context>
</Host>
注意:
1)
path
的值设置为空;
2)应用不要放到 tomcat 的webapps
目录下(如上述配置是放到自定义的文件夹myapp
s内的),否则访问时路径会有问题;
3)docBase
指定到绝对路径。如配置此设置后重启tomcat,如果
docBase
指向的是war文件,则会自动将war解压到webapps/ROOT
目录;如果docBase
指向的是应用已解压好的目录,如docBase=”C:/apache-tomcat-6.0.32/myapps/bc”
,则tomcat不会生成webapps/ROOT
目录(这种情况下,这样就可以不用删除webapps/ROOT
目录,但webapps/ROOT
目录内的内容是无法访问的),访问时将直接使用docBase
指定的目录。
方法三:
与方法二类似,但不是修改全局配置文件 conf/server.xml
,而是在conf/Catalina/localhost
目录下增加新的文件ROOT.xml
(注意大小写),文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="C:/apache-tomcat-6.0.32/myapps/bc.war" reloadable="true">
</Context>
注意:
Tomcat5.0以下版本在conf/Catalina/localhost
目录下会自动生成了一个ROOT.xml
文件,但是5.0以上版本已不再自动生成此文件。