Javaweb项目在Tomcat 部署方式的N种方式. 发布于 2 年前 (2018年04月26日) – 1801

1、直接将web项目文件件拷贝到webapps 目录中

Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。

所以很多时候我们可以用War包也好,其实原理就是启动Tomcat服务时,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。也可以直接把编译好的文件放到Webapps下。

2、在server.xml中指定web项目目录

这种是我最近用的最多的一个.在tomcat中的conf目录下的server.xml中<host/>节点中添加:

<Context path="mams" docBase="I:devRepositoryjavaCoreRepositorymams_a5d" debug="0" privileged="true" />

path未访问这个项目的名字,如:127.0.0.1:8080/mams

docBase 是应用程序的物理路径

debug 则是设定debug level,  0表示提供最少的信息,9表示提供最多的信息

privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet

reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署

3、创建一个Context文件 ,不重启服务器就可以使用

这种方式是公司用的最多的一种,在服务器上的普遍这样部署

其实这种方式类似于第二种的方式

在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字可以随意取,

如:mams.xml,然后内容为:

<?xml version='1.0' encoding='utf-8'?> <Context docBase="I:devRepositoryjavaCoreRepositorymams_a5d" debug="0" privileged="true" />

然后然后也是127.0.0.1:8080/mams,这种访问路径其实就是这xml文件名字。这样可以隐藏应用的真实名字。

其实我试过,加上path也是不影响,但是没有试过xml名字和path名字不同会怎么样

<Context path="mams" docBase="I:devRepositoryjavaCoreRepositorymams_a5d" debug="0" privileged="true" />

推荐使用第三种方式,因为不需要修改tomcat默认配置,对tomcat的侵入性也是最小,并且如果想取消部署,直接删除xml配置文件即可。

4.Tomcat Manager动态部署

这种方式我之前已经写过,这次就一起把它记录起来吧。

详情到:http://199604.com/785 这个页面看我之前写的记录