server.xml 配置文件中
一、同端口多项目
<Host name="localhost" appBase="E:\MyWeb\webapps"
unpackWARs="true" autoDeploy="true">
appBase 属性可以用绝对路径也可以用相对,如果是相对路径 前缀为 环境变量值;
如果autoDeploy="true" 那么 appBase 这个目录下的子目录将自动被部署为应用。
这个目录下面的.war文件将被自动解压缩并部署为应用。
1、在没有Context和其他项目设置时启动项目,那么主页为 appBase路径下的ROOT文件夹下的页面;ROOT区分大小写;
如果没有ROOT文件夹则需要带项目路径访问。
例如我将项目放置在 E:\MyWeb\webapps\Root2下 那么我访问需要 http://localhost:8080/Root2/
但是如果 E:\MyWeb\webapps\ 目录下存在 ROOT文件 且 文件夹中有主页 那么可以直接 http://localhost:8080访问。
至于这个ROOT文件夹为什么是初始默认,并且可以省略ROOT路径,本菜也没有找到答案。还请知道的告知一二~
2、如果有Context 例如:
<Context path="" docBase="E1" debug=”0″ reloadable=”true” workDir="E:\MyWeb\webapps\E1\work" />
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空;这个时候tomcat将不再部署ROOT目录下的项目,而只部署docBase目录的项目来确保 http://localhost:8080 地址访问的唯一性。
path如果设置有值 "W1" tomcat将先部署 docBase中的项目,然后再部署ROOT中的项目,且访问docBase项目的时候有两种方法
(1)、 http://localhost:8080\E1
(2)、http://localhost:8080\W1
这两个地址访问同一个页面。
docBase为新增项目的路径,也可以用绝对路径。
workDir是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置 在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析 。一般格式:项目文件夹\work
这里需要注意 path如果设置就算没有ROOT文件夹你还是需要带E1这个路径来访问Context中的项目;
--------------------------------------------------------------------------------------------------
二、修改在不同的端口 发布新项目
需要在server.xml配置文件中 增加一个 <Service > </Service >
下面的代码是增加一个开放在8199端口的项目;
<Service name="Catalina8199">
<Connector port="8199" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Engine name="Catalina8199" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="E:\MyWeb\webapps8199"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/test" reloadable="true" docBase="E1"></Context>
</Host>
</Engine>
</Service>
---------------------------------------------------------------------
通过 Engine来增加项目 待补充