首页 > 代码库 > Tomcat自动发布war包

Tomcat自动发布war包

有两种方法:
1.将项目打成war包,复制到${tomcat.home}\webapps目录下.当tomcat启动时会自动将其解包.

有人说,不能直接将war文件夹直接复制到${tomcat.home}\webapps目录下.

但是我试过之后,可以。将war包解压,解压出的文件夹要和war文件同名(后面可没有 .war),然后将文件夹放到webapps下面就可以了

2.修改${tomcat.home}\conf\server.xml文件.在Host节点下增加如下参考代码:

<Context docBase="D:\pafalearning\userapp\dist\tomcat\userapp.war" path="/userapp" reloadable="true"/>

docBase:指向项目的根目录所在的路径,由于我将项目打成了war包,所以直接指向这个war包就可以了(我的项目名为:userapp).
path:是一个虚拟目录,这里设置成了"userapp",则启动Tomcat后,你将通过http://localhost:8080/userapp/*.jsp来访问项目的相关页面.
reloadable:如果设置为"true",则表示当你修改jsp文件后,不需要重启服务器就可以实现页面显示的同步.

可以这样理解:将docBase实际目录下的项目,映射到${tomcat.home}\webapps目录下的虚拟项目path(这里的配置指的是userapp项目).

 

也许有些人还不懂war包是什么,其实就是你的项目下的WebRoot文件夹中的内容(不加WebRoot这个文件夹)打成一个压缩包,后缀用war,其实和rar差不多,不过tomcat就认war。

那为什么war包可以讲项目这个发布出来呢?

1.因为所有新建的文件夹都在WebRoot文件夹下

2.所有的页面都在WebRoot文件夹下

3.所有的后台代码都编译成了 .class文件,在WebRoot \ WEB-INF \ classes 下面

4.我们习惯将所有的 .jar包放在WebRoot \ WEB-INF \ lib 下面

有了这些,就相当于一个项目完全考到了tomcat下面,这就是用war包发布项目的原理

********************************************************************

在MyEclipse配置好 tomcat后,  发现程序保存后, 刷新网页的时候, 不能自动加载修改后的网页, 而必须重启服务器才可以重新加载.

现在可以通过修改tomcat配置文件来让服务器自动加载,

修改tomcat服务器文件 tomcat安装目录--conf--server.xml,  在tomcat的<host></host>标签里添加下面这行代码:

<Context   path= "/myweb "   docBase= "E:\myeclipse9\myweb\WebRoot "   reloadable= "true "/>

说明:

1>path:指定拜候该web应用的URL进口;

2>docBase:指定web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性【默认
  指向tomcat的webapps】的相对于径;要是Web应用是个war文件,则指定war文件的路径。

3>reloadable:要是这个属性设置为true,Tomcat服务器在运行状况下会监视在WEB-INF/classess和WEB-
  INF/lib目次下的class文件的改动,以及监视web应用的WEB-INF/web.xml文件的改动。要是检测到的class
  文件或者web.xml文件被更新,服务器会自动加载Web应用。该属性的默认值为false.在web应用的开发和调
  试阶段,把reloadable设为true,可以方便对web应用的调试。在web应用正式发布阶段,把reloadable设为
  false,可以减低tomcat的运行负荷,提高Tomcat的运行性能。