tomcat -ROOT 与webapps 的关系,关于部署的一些问题
2018-01-09 14:43
627 查看
tomcat
-ROOT 与webapps 的关系,关于部署的一些问题
现象:之前遇到很奇怪的问题,发完版之后没有效果,页面还是读取上一版的。
反复查找原因发现 http://localhost:8080/mobie 这个路径下的页面是正常的,
而 http://localhost:8080/这个页面是旧版本的。
为什么呢?
之前是我们在server.xml
![](https://images2015.cnblogs.com/blog/419239/201701/419239-20170104171815566-55162454.png)
添加了<Context/>配置节,目的是去掉 http://localhost:8080/项目名 后面的项目名,直接访问域名就可以访问网站。
这样做的却可以用域名访问,但是带来了隐藏很深的 很奇怪的问题。如上所诉
原因在于:启动tomcat 的时候,webapps目录下面的.war文件将被自动解压缩并部署为应用。同时mobile下的应用会copy到ROOT下。如果ROOT文件下不存在则mobile的应用(子文件)那么copy进去(问题就在这里
我们第一次发版的时候ROOT下并没有mobile 的应用所以copy 进去没有问题),再次发版的时候,由于ROOT下存在mobile 应用没有覆盖,所以出现两种结果。 http://localhost:8080/mobie 与 http://localhost:8080访问的页面不一致。
![](https://images2015.cnblogs.com/blog/419239/201701/419239-20170104172835222-1680483750.png)
解决方法:找到原因之后,在每次发版之前删调ROOT,启动tomcat会重新生产ROOT,这样ROOT下应用就是最新的。
![](https://images2015.cnblogs.com/blog/419239/201701/419239-20170104174046487-968921708.png)
扩展:
ROOT 与webapps 的关系:
我们一般都是这么写http://localhost:8080/项目名,如果不写项目名默认就是webapps目录下的ROOT项目,ROOT里面就有那只猫。
比如说你打上http://localhost:8080 就直接访问root下面的文件了 默认为tomcat的欢迎页面
如果你把root下面文件换成你项目文件,那么http://localhost:8080这样的话就是访问你项目了
<host appBase="d:/aaa">
<Context path="/smswap" reloadable="true" docBase="D:\workspace\smswap\WebRoot"></Context>
</host>
我们先看appBase,这个目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用
而docBase只是指向了你某个应用的目录,这个可以和appBase没有任何关系。
总结:
如果你想自己指定路径,那么应该在docBase里面
参考链接:http://blog.csdn.net/liuxuejin/article/details/9104055
相关文章推荐
- tomcat -ROOT 与webapps 的关系,关于部署的一些问题
- tomcat -ROOT 与webapps 的关系,关于部署的一些问题
- 关于将XMPP server部署到Tomcat上的一些问题
- 关于将XMPP server部署到Tomcat上的一些问题及断开连接不上解决
- 关于MyElipse tomcat部署成功,却无法添加到webapps的问题
- tomcat 2-- 关于一些部署启动问题和403问题的查询记录
- 关于将XMPP server部署到Tomcat上的一些问题
- 关于tomcat部署问题
- 【Tomcat】Linux下关于Tomcat部署项目的问题总结
- 关于tomcat端口的修改,以及同时部署多个应用,自己遇到的问题以及解决办法
- 关于避免部署在eclipse和tomcat下的项目下保存的图片随着下次重新部署导致图片文件夹被清除的问题
- 关于tomcat部署项目出现的问题并解决方法
- 解决eclipse publish项目后tomcat-webapps-root-lib为空的问题
- 关于安装mysql 5.7时遇到的默认root无法登陆或者找不到data文件夹的问题的一些解决办法
- 关于避免部署在eclipse和tomcat下的项目下保存的图片随着下次重新部署导致图片文件夹被清除的问题
- 解决tomcat部署多个虚拟机时报IllegalStateException: Web app root system property already set to 的问题
- 在myeclipse中如何修改Web Context-root,就是部署在Tomcat的webapps目录下的那个文件夹名字
- 关于Resin在Eclipse或者Myeclipse上利用Debug模式部署的方法以及遇到的一些问题
- 关于避免部署在eclipse和tomcat下的项目下保存的图片随着下次重新部署导致图片文件夹被清除的问题
- springboot项目打成war包部署到tomcat遇到的一些问题