为什么要学习tomcat热部署。一般我们的开发环境是在window系统下,而部署环境在Linux系统,所以需要将window系统的项目包,上传到linux系统下进行部署。如果是通过拷贝文件夹的形式进行部署,就还需要在linux系统下进行重启,或者其他操作,就会比较麻烦,而通过热部署的方式,则只需要启动一次tomcat就能够直接在window系统下进行部署,相对来说,比较方便。

Tomcat热部署实现原理

tomcat的热部署实现原理:tomcat启动的时候会有启动一个线程每隔一段时间会去判断应用中加载的类是否发生变法(类总数的变化,类的修改),如果发生了变化就会把应用的启动的线程停止掉,清除引用,并且把加载该应用的WebappClassLoader设为null,然后创建一个新的WebappClassLoader来重新加载应用。

实现Tomcat热部署

第一步:首先配置好java环境和tomcat(具体操作参考文末链接)

第二步:进入tomcat目录下的conf/目录,修改tomcat-users.xml文件,配置远程访问账户和密码。注意role为此固定名字,username和password可自行修改。


<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="test" password="123456" roles="manager-gui, manager-script"/>


idea 发布maven war_window下tomcat 按天生成日志


第三步:进入bin目录,依次执行下面语句,重启tomcat。


./shutdown.sh    # 关闭
./startup.sh    # 启动


第四步:构建Maven工程,并在pom.xml文件中配置如下信息,修改username和password为第一步添加的配置,修改path为上传目录和访问地址。注意:url除了地址和端口,其余均为固定写法。


<build>
	<plugins>
		<!-- 配置Tomcat插件 -->
		<plugin>
			<groupId>org.apache.tomcat.maven</groupId>
			<artifactId>tomcat7-maven-plugin</artifactId>
			<configuration>
			        <url>http://192.168.25.130:8080/manager/text</url>
				<username>test</username>
				<password>123456</password>
				<path>/forumserver</path>
                                <update>true</update>
			</configuration>		
		</plugin>
	</plugins>
</build>


第五步:在项目路径下,执行如下命令进行热部署。


mvn package tomcat7:redeploy -DskipTests


idea 发布maven war_linux两个tomcat环境该怎么配置_02


第六步:检查是否部署成功,首先查看tomcat目录下的webapps/目录是否如下图所示


idea 发布maven war_idea 发布maven war_03


第七步:在浏览器中访问地址ip:8080/forumserver,看是否为自己指定展示页面,如果访问成功,则表示热部署成功,如果失败,请自行检查tomcat日志文件。