1.1 tomcat热部署.class

本人是在维护公司系统时遇到的问题,由于公司的系统是部署到客户服务器上,而系统中存在的问题又比较多,需要经常维护。如果每次修改完class文件后都需要去重启服务器,

那会给用户的使用造成不便,所以需要使用Tomcat热部署去实现在没有关闭Tomcat的情况下去动态的替换class。以前从未搞过,所以自己花了点时间研究了一下,特此记录:

参考文档:https://blog.csdn.net/wf632856695/article/details/53445081

     https://www.cnblogs.com/qlqwjy/p/8231750.html

本人使用的是apache-tomcat-8.0.35

1.其实Tomcat热部署很简单,只需要在Tomcat的server.xml文件中加入如下配置:

 <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        
        <Context path="/pwkyps" docBase="pwkyps" reloadable="true"/>  # 加入这一行代码

context代表的是localhost:8080/pwkyps 指向pwkyps这个项目;

docBase是物理路径,可以是绝对路径,也可以是相对Host标签中appBase的相对路径,而Host标签中appBase的默认值是webapps文件夹,所以这里的pwkyps就代表webapps下的pwkyps文件夹。

这里的path+docBase的配置就表示ip+端口+/项目名称都可以指向你的项目。

reloadable就告诉Tomcat需要监控WEB-INF中的class文件,如果有变化了,就需要重新加载。并且是重新加载整个项目的,包括web.xml等等。

说明:本人这里主要测试了改变.class的情况,至于改变web.xml、jsp页面的情况还未做测试,等具体用到了在进行测试。

有些文献里面说的在替换.class文件是需要清除tomcat缓存,进入tomcat根目录,删除work/catalina 下的所有东西,但是我在实际测试时候发现,即使不清除也不会影响。

只是在测试的时候遇到一个问题:在每次替换.class的时候项目总的session就会失效,需要用户重先登录。

原文地址:https://www.cnblogs.com/shiyun32/p/9272540.html