Tomcat虚拟目录

x先来看一段server.xml文件里的配置:

<Host appBase="" autoDeploy="true" debug="0" name="nba.nubb.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
        <Context docBase="F:\www\webapps\webapps\nba" path="/"/>
        </Host>

在网上看了很多资料, 很多大神都在讲述同一个意思,缺让看得人云里雾里,下面就我遇到一些疑问和解决办法说下:

问题 1. 如何指定虚拟目录,简单来说就是我可以把我想指定的文件夹当作虚拟目录

  2. 我用的是Eclipse,在修改配置文件server.xml时候为毛老是提示配置文件被修改呢!

·  3. 如何让Tomcat去访问我指定的虚拟目录下的XXX项目。

解答:

  1. 我用的是Eclipse,在New 一个Server之后,双击Tomcat Server XX之后出现一张配置Tomcat的页面Tomcat虚拟目录

此时应该特别注意,创建Server之后就马上来修改,不然等到启动它之后再来改,它就不给你改了,好坑爹地说!   然后就可以指定自己的虚拟目录。

 

2. 提示配置文件被修改是因为Eclipse在创建Server之后,同时也会创建一个Server工程,里面主要是一些配置文件, 那这些配置文件和 实际Tomcat/config下的配置文件有什么关系呢,答案是 前者比后者优先级要高, 所以我们在对后者(tomcat/config)修改时,重启服务之后就会提醒你文件已被修改, 比如 端口的修改。 如果是修改了Eclipse中Server下的配置文件,那么相应的在实际config文件夹下也被修改了。

 

3.  下面就是配置虚拟目录了,在此之前我们先去C:\WINDOWS\system32\drivers\etc下添加我们想要的访问域名,我写的是:nba.nubb.com

  然后就是修改server.xml文件了

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
        -->
      <Context docBase="nba_fantasy" path="/nba_fantasy" reloadable="true" source="org.eclipse.jst.jee.server:nba_fantasy"/>
      
      </Host>
      
      
        <Host appBase="" autoDeploy="true" debug="0" name="nba.nubb.com" unpackWARs="true" xmlNamespaceAware="false" xmlValidation="false">
            <Context docBase="F:\www\webapps\webapps\nba_fantasy" path="/"/>
        </Host>