<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
  </GlobalNamingResources>
  <Service name="Catalina">
     <Connector port="9697" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<!--
          <Context path="" docBase="ROOT" debug="0">
-->
      </Host>
    </Engine>
  </Service>
</Server>    上面是我的tomcat内conf目录下的server.xml文件配置,在webapps目录下有个ROOT目录,当前放置的一个应用程序。
通过http://localhost:9697/可访问到ROOT下的这个web应用。
    我现在有个需求——配置第二个应用
我的想法是在webapps下建立第二个应用app2,使其与ROOT下的应用完全隔离,并可通过http://localhost:9909/直接访问
即端口号不同。请问应该如何增加第二个应用的xml配置
    如果这个思路不可能,那有没有比较接近的方法???

解决方案 »

  1.   

    <Host name="myhost2"  appBase="app2"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
          </Host>我直接追加了一个host,并且在与webapps同级创建一个app2的目录,其下放置一个ROOT目录,ROOT下位程序文件
    (这样的结构就完全与webapps一致了),没变端口号,只变了对应的主机名称
    预计可以通过http://myhost2:9697/访问我的第二个应用,可惜,测试了,页面一直出不来
      

  2.   

    可以考虑用apache来进行管理,建立多个虚拟主机,设定各自的端口,网上有很多资料
      

  3.   


    看你的代码 你该用的是TOMCAT 我用APACHE 做了个集群 你可以看下
    http://user.qzone.qq.com/19810109/blog/1289833575
      

  4.   

    把所有的项目都拷贝到webapp目录下,然后启动tomcat就行了
      

  5.   

    <Host name="myhost2"  appBase="app2"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
          </Host>
    这是server.xml中要写的,你有多少个就写多少个,注意记住这个name  然后在conf目录下的Catalina目录下建立name(两个名字要相同)文件夹,在这个name文件夹下把项目的webroot下的文件拷备出来放入到这里tomcat这里面就完成了....但有一问题就是访问了.访问时候是要写上http://name:端口号 这种形式才行的.还要改的就是ip映射... 这个你在C盘下搜索hosts这文件 在里面写上你的ip 例如 127.0.0.1 name 再保存下就ok了....
      

  6.   

    不过想了一下,tomcat只监听一个端口的,所以觉得应该从域名上来解决这个问题.....
      

  7.   


    <?xml version='1.0' encoding='utf-8'?> 
    <Server port="8005" shutdown="SHUTDOWN"> 
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <Listener className="org.apache.catalina.core.JasperListener" /> 
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> 
      <GlobalNamingResources>
            <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>   
      <Service name="Catalina">   
        <Connector port="5222" protocol="HTTP/1.1"  connectionTimeout="20000"  redirectPort="8443" />    
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> 
        <Engine name="Catalina" defaultHost="localhost"> 
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> 
          <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> 
    <!--<Context path="/zhaopin" docBase="E:\workspaces\project\zhaopin\WebRoot" reloadable="true"></Context>-->
    <!--<Context path="/feilong-test" docBase="E:\workspaces\project\feilong-test\WebRoot" reloadable="true"></Context>-->
     <!--<Context path="/baby" docBase="E:\workspaces\project\baby\WebRoot" reloadable="true"></Context> --> 
     <!--<Context path="/feilong-netpay" docBase="E:\workspaces\project\feilong-netpay\WebRoot" reloadable="true"></Context>  -->
      <!--<Context path="/feilong-spring-test" docBase="E:\workspaces\project\feilong-spring-test\WebRoot" reloadable="true"></Context> -->
          </Host>
        </Engine>
      </Service>
    </Server>
      

  8.   

    这是我的配置代码 可以配置n个  把注释符号去就就可以完整的server.xml
      

  9.   

    不一定是多个端口,我的需求是:启动tomcat时只启动一个应用。而访问时除了http://localhost:端口/外,不需要加额外的路径目录。
    venusdrogon的通过加载<Context >的方式应该是把所有的应用都启动起来了吧,并且访问时要加应用的路径吧,比如http://localhost:端口/app2/
      

  10.   

    不写 配置文件 可以吗? JSP 中  直接 用 就是了
      

  11.   

    大哥,我们一般用用多个域名访问同一个服务器下面的多个应用,而不是同一个域名的多个端口。
    若要用多个端口,那你最好装多个tomcat同一个tomcat下多个应用可以分别用不同的域名访问。也就是设多个Host<Host name="localhost" ...<Host name="www.xxx.com"...