备注 | 修改日期 | 修改人 |
CREAT | 2022-03-08 11:38:04[当前版本] | 系统管理员 |
想要在一个tomcat下访问两个web项目时,可以通过添加虚拟host的方式来解决。
详细步骤如下:
1、将两个项目打包放入tomcat的webapps目录下;
2、修改tomcat的server.xml文件,原来的代码如下:
<Host name="localhost"
appBase="webapps"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
添加代码后如下:
<Host name="localhost"
appBase="webapps"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
<Context
path="ROOT" docBase="/ROOT"/>
</Host>
<Host name="myspring.com"
appBase="webapps"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
<Context
path=""
docBase="/SpringMvcArchitect2"/>
</Host>
需注意两点:a、原来的host需要加上context标签,并且path由原来的空变为项目名,因为两个host的path不能同时为空,不然会访问出错,原来的项目名默认为ROOT。
b、添加新的host,将docBase里的路径设置为第二个web项目的路径,这里为/SpringMvcArchitect2,name为虚拟域名,自定义的。
3、修改机器的host文件(区别于上面的Host标签,是系统host文件),添加一个ip映射,例如添加的host的name为myspring.com,则往系统host文件中添加127.0.0.1 myspring.com
4、重启tomcat,就可以使用localhost:8080和myspring.com:8080访问两个web项目了,这里端口设置为8080,可以自己更改。
5、同理可以扩展为多个web项目,只需配置多个host即可
附:部分项目如jfinal框架默认的项目在ROOT下,所以war包不能都放webapps文件夹下,这样需另外存放路径如E:\test
1、 server.xml配置文件如下
<Host name="localhost"
appBase="webapps"
unpackWARs="true"
autoDeploy="true"
xmlValidation="false"
xmlNamespaceAware="false">
<Context
path="ROOT"
docBase="C:\tomcat\webapps\ROOT"/>
</Host>
<Host name="test.xiuyuewang.com"
appBase="E:\test"
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=""
docBase="E:\test\ROOT" reloadable="false"
crossContext="true"/>
</Host>
2、 系统host配置文件
添加 127.0.0.1 新域名
3、重启tomcat。