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的页面
此时应该特别注意,创建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>