天天看点

Tomcat中 server.xml 的Context的配置

转自:http://blog.sina.com.cn/s/blog_4b5bc011010115we.html

当我们开发完一个Web应用后,我们需要将该应用发布到Web Server中,以便其他用户可以访问。在JAVA的WEB开发领域,我们通常使用TOMCAT作为我们的WEB服务器进行测试或正式部署。 

一般我们将WEB应用打包成WAR格式,然后拷贝到TOMCAT的WEBAPP目录下进行发布,在正常情况下,TOMCAT将自动解压WAR文件并生成对应的目录,而且会在内存中动态创建该WEB应用对应的CONTEXT路径。比如我们的WAR文件是Sample.war,那么解压后的目录就是Sample目录,在内存中动态创建的Context路径就是/Sample。在开发阶段这样的默认行为是可以接受的,但是在正式部署的情况下,我们通常需要修改应用的Context路径以适应我们的需要。 

如果我们想让用户仅仅输入域名来访问我们的Sample应用,我们就需要修改Tomcat的Context设置。具体如何设置Context路径的方式有两种,一种是修改{TOMCAT_HOME}/conf/server.xml文件,另一种是建立一个Context片段文件放在webapps目录下。我们这里介绍第一种方式。 

使用任何文本编辑器打开server.xml文件,在<Host>节点下增加<Context>节点,并设置path,docBase,debug和reloadable属性,如下: 

<?xml version="1.0" encoding="UTF-8"?>   
<Server>   
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>   
  <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>   
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>   
  <GlobalNamingResources>   
    <Environment   
      name="simpleValue"   
      type="java.lang.Integer"   
      value="30"/>   
    <Resource   
      auth="Container"   
      description="User database that can be updated and saved"   
      name="UserDatabase"   
      type="org.apache.catalina.UserDatabase"   
      pathname="conf/tomcat-users.xml"   
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>   
  </GlobalNamingResources>   
  <Service   
      name="Catalina">   
    <Connector   
        port="8080"   
        redirectPort="8443"   
        minSpareThreads="25"   
        connectionTimeout="20000"   
        maxSpareThreads="75"   
        maxThreads="150"   
        maxHttpHeaderSize="8192">   
    </Connector>   
    <Connector   
        port="8009"   
        redirectPort="8443"   
        protocol="AJP/1.3">   
    </Connector>   
    <Engine   
        defaultHost="localhost"   
        name="Catalina">   
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>   
      <Host   
          appBase="webapps"   
          name="localhost">   
        <Context   
            path="/samples">   
          <WatchedResource>WEB-INF/web.xml</WatchedResource>   
        </Context>   
        <Context   
            path="/profiler">   
          <WatchedResource>WEB-INF/web.xml</WatchedResource>   
        </Context>   
        <Context   
            path="/flex">   
          <WatchedResource>WEB-INF/web.xml</WatchedResource>   
        </Context>   
        <!-- 配置直接通过域名访问/Samples应用 -->   
        <Context path="" docBase="/samples" debug="0" reloadable="true">   
           
        </Context>   
      </Host>   
    </Engine>   
  </Service>   
</Server>