tomcat配置虚拟目录的最正确方式和部署多个web项目
tomcat 配置虚拟目录的最正确方式
在部署web项目到服务器上的时一般都是这么配置的:
配置虚拟目录不是配置虚拟路径,虚拟目录的意思是,web项目名称。
1.虚拟目录的映射:
Web开发以后交给服务器,要想被外界访问,就得把目录交给服务器管理,这个过程叫做虚拟路径的映射。
当浏览器地址为:http://localhost:8080 就是访问到了tomcat的webapps文件夹下。因为tomcat的配置中,也是有指定了tomcat的默认访问路径就是webapps。
2.常见的配置虚拟目录:
第一种:
Service.xml中host内配置Context标签,path+docbase属性。
比如你的直接把项目放入到其他任意的目录下,不是tomcat的webapps下,然后直接去配置这个。
我的app2项目包,放在C盘下。
最后,只需要浏览器输入对应的path即可访问到,并不需要一定放到tomcat的文件夹下去。
第二种:缺省配置
直接去掉path的指定。
访问的时候就可以不需要项目名:
第三种:war包
直接把项目打包成war包,然后手动放入到tomcat的webapps文件夹下去,运行tomcat即可。因为tomcat的配置中,也是有指定了tomcat的默认访问路径就是webapps。
但是!!!
以上的这几种配置,在tomcat官方已经不推荐了。
所以说发布web项目,tomcat 配置虚拟目录的最正确方式。
最正确配置方式:
以后的线上配置方式:推荐!
创建一个xxx.xml在tomcat的conf\Catalina\localhost 文件夹下。
然后写下对应的虚拟目录:
最后浏览器访问:
如果你有多个不同的web项目,那么就在这个xml当中写下不同的虚拟目录即可通过浏览器访问,这样单独抽离出来,方便快捷。
其次补充一下知识: 服务器部署知识。
1.关于一个tomcat下部署多个war包:
把war包放到webapp目录下,也就是war包和ROOT平级:
更改 tomcat里面server.xml: 添加的context标签详细:
<Context crossContext="true" debug="5" docBase="D:\apps\UAP\apache-tomcat-7.0.42_64/webapps/A.war" path="/A" reloadable="false"> </Context>
<Context crossContext="true" debug="5" docBase="D:\apps\UAP\apache-tomcat-7.0.42_64/webapps/B.war" path="/B" reloadable="false"></Context>
最后启动Tomcat,两个war包就能正常使用了…
2.另外一种不需要war包的方式:
在你本地的eclipse中的工作路径即workspace中有一个.matedata文件夹,打开.matedata文件夹后会有一个.plugins文件夹,打开找到org.eclipse.wst.server.core文件夹,一直打开到H:\javalianxi\javaketang.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\ 这个文件夹中就有你要的编译好的项目包resource。
这是已经通过eclipse编译好的项目,你可以拷贝出来,直接放在你的服务器的Tomcat下的webapps下,这样就部署好了。亲测有用。
但是这种方式,不推荐使用,因为这个是本地eclipse编译完成,跟服务器上的环境不一定一致,而且该项目包,不一定是最新版。
3.项目端口号冲突:
Tomcat默认空间webapps,中已经存在一个项目了,此时要增加一个项目运行可以将原本webapps目录copa一份,
改名为webapp1(或者其他看实际情况),然后,将webapp1目录中原来的项目清除,加入你要部署的新项目。
然后修改为不同的端口号。