如何修改Tomcat的默认项目发布路径
tomcat默认的项目发布目录是/webapp/ROOT,如果想自定义发布目录,应该怎么办呢?
修改配置文件
首先,修改$tomcat/conf/server.xml文件。
在server.xml文件中,有一段如下:
<engine name="Catalina" defaultHost="localhost">
<host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<host>
</engine>
在标签之间添加上:
<Context path="" docBase="myworkspace" debug="0" reloadable="true" />
path是说明虚拟目录的名字,如果你要只输入ip地址就显示主页,则该键值留为空; docBase是虚拟目录的路径,它默认的是$tomcat/webapps/ROOT目录,现在我在webapps目录下建了一个myworkspace,即为我的工作目录。
踩过的坑
光看上面的过程,似乎非常顺畅,但世上的事总是不会那么顺利的。下面列举几个我踩过的坑。
3.1、Windows系统下,redeploy过程无法删除旧项目的目录
报错信息在$TOMCAT_HOME/logs下的catalina日志文件中,如下:
信息: Undeploying context [/web-loab]
十月 11, 2014 3:52:26 下午 org.apache.catalina.startup.ExpandWar deleteDir
严重: [D:\tomcat\apache-tomcat-7.0.56\webapps\web-loab\WEB-INF] could not be completely deleted. The presence of the remaining files may cause problems
大概是因为Tomcat还在使用这个目录,无法删除,必须修改$TOMCAT_HOME/conf/context.xml:
<Context antiJARLocking="true" antiResourceLocking="true">
Servelt.class offending
这个问题应该不属于本文主题范畴了,但可能因为这个导致Web项目启动起来却无法访问,报错信息如下:
十月 11, 2014 3:46:29 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\tomcat\apache-tomcat-7.0.56\webapps\web-loab\WEB-INF\lib\servlet-api-6.0.29.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
原因是webapps目录下的某个Web项目的WEB-INF/lib目录下有servlet-api.jar,删除之,并在pom.xml中指定servelt-api.jar的scope为provided:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>6.0.29</version>
<scope>provided</scope>
</dependency>
版本问题
确保Web项目的Java Build Path使用的JDK版本、Java Compiler的编译JDK版本以及Project Facets里的Java版本一致。
如果用的Tomcat6,则pom.xml中配置tomcat6-maven-plugin,如果用的tomcat7则用tomcat7-maven-plugin。或者默认用tomcat-maven-plugin。
有关使用Tomcat Maven插件部署项目的一些建议
这种方案能够实现持续快捷部署。但它有一些局限性:
要求从本地开发环境能直接访问Tomcat服务器所在网段
不能保留历史部署包
因此初步建议只在开发环境使用这种部署方式,并且结合SVN、Git等版本控制软件做两个内部约定:
所有可部署版本代码都必须先签入一个名为deploy-xx的分支,xx表示当前可部署版本,deploy分支代码必须保证是可以部署的代码,然后切到deploy-xx分支再部署项目
以后增加了新功能,则需新建另一个deploy分支,并增大版本号。这样可以利用版本控制软件帮我们保留各个历史可部署代码(解决了上面提到的第二个局限性)。尤其是多个项目集成时,最好保证每一次集成时各个项目的deploy分支带的版本后缀相同。这样可以方便各个项目代码集体回滚
如何修改Tomcat的默认项目发布路径的更多相关文章
- 【tomcat】如何修改tomcat的默认项目
我们知道,在Tomcat安装.配置.启动成功后在浏览器地址栏输入http://localhost:8080会访问到Tomcat的默认主页. 然后我们打开Tomcat的webapps目录时,会发现里面有 ...
- (转)tomcat 修改默认访问项目名称和项目发布路径
1.项目发布路径 <Host name="localhost" appBase="webapps" unpackWARs="true" ...
- linux下修改tomcat的默认目录
1.修改tomcat的默认目录.它的默认目录是webapps/ROOT,对应的conf目录下的server.xml里的内容是: 1.修改tomcat的默认目录.它的默认目录是webapps/ROOT, ...
- 修改Jupyter Notebook默认文件存储路径(已安装Anaconda)
https://blog.csdn.net/weixin_44799144/article/details/91823079 修改Jupyter Notebook默认文件存储路径首先,安装好Anaco ...
- 修改web项目发布路径
Eclipse中用Tomcat发布的Web项目,更改其部署路径 我的Eclipse的工作目录是D:/workspace先配置Tomcat 选择你的tomcat版本 点击next 这里先不要把项目添加进 ...
- 如何修改TOMCAT的默认主页为你自己项目的主页
感谢作者:xxs673076773 原文链接:https://www.iteye.com/blog/xxs673076773-1134805 (最合适的) 最直接的办法是,删掉tomcat下原有Roo ...
- 怎么修改TOMCAT的默认主页为你自己项目的主页
如果webapp下有一个abc的文件来下有一个index.html,想设置为首页怎么操作 方法: 修改tomcat/conf/web.xml文件.在web.xml文件中,有一段如下:<welco ...
- 修改Tomcat的默认访问目录
放在外网的应用,用户多是直接输入域名访问,而Tomcat的默认目录是ROOT,所以我们需要更改其默认目录. 更改Tomcat的默认目录很简单,只需要修改server.xml就可以了. 具体是是在< ...
- 7、DockerFile案例:自定义centos、自定义tomcat、webapps项目发布
1.Base镜像(scratch) Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的 2.自定义镜像mycentos 1.Hub默认CentOS镜像什 ...
随机推荐
- 搭建Hexo博客(二)-连接github
没有github账号先需要创建账号,地址:https://github.com/join?source=header 有账号的看下面: 1.创建repo 创建一个repo,名称为yourname.gi ...
- 红米Note 7 Pro在印度首销迅速售罄
3月13日消息,红米Note 7 Pro在印度率先发售. 小米印度业务负责人Manu Kumar Jain发推特表示,红米Note 7 Pro开售几秒钟就被抢光,我们的工厂正在加班加点工作,全力以赴提 ...
- import logging报错raise notimplementederror 'emit must be implemented ' ^
在导入logging的时候出现这个错误 大概看了一下,就是因为python内置里面已经有logging这个模块,所以不需要再安装 在site-packages里面找到关于logging的文件,删掉 重 ...
- MySQL的my.cnf文件(解决5.7.18下没有my-default.cnf)
官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件.参考:https://dev.mysql.com/doc/refman/5.7/en/binary-installatio ...
- P1200 你的飞碟在这儿
P1200 题目描述 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支持者. 因此,他们要用一种聪明的方案让这些小组提前知道 ...
- 洛谷P2764 最小路径覆盖问题
有向无环图的最小路径点覆盖 最小路径覆盖就是给定一张DAG,要求用尽量少的不相交的简单路径,覆盖有向无环图的所有顶点. 有定理:顶点数-路径数=被覆盖的边数. 要理解的话可以从两个方向: 假设DAG已 ...
- 对strom的理解
1.什么是strom: storm是一个分布式实时计算系统,用户只需要提供自己的插件(例如一个jar包,其中编写用户自己的逻辑代码),然后将它部署到storm服务器上,storm的master服务器就 ...
- Gogs 部署安装(Linux)
环境 centos7:golang+mysqldb+git. 安装配置环境[mysql装了请跳过] yum install mysql-community-server go git -y 配置防火墙 ...
- 【cf789B】Masha and geometric depression(分类讨论/暴力)
B. Masha and geometric depression 题意 在黑板上写数列,首项是b,公比是q,超过l时就停止不写.给定m个数,遇到后跳过不写.问一共写多少个数,如果无穷个输出inf. ...
- 合法括号序列(dp+组合数学)
键盘上有左括号(,右括号),和退格键-,共三个键. 牛牛希望按键n次,使得输入的字符串恰好一个合法的括号序列. 每按一次左括号(,字符串末尾追加一个左括号( 每按一次右括号),字符串末尾追加一个右括号 ...