tomcat_root.png
tomcat_root.png

将应用部署到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 目录下(如上述配置是放到自定义的文件夹myapps内的),否则访问时路径会有问题;
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以上版本已不再自动生成此文件。