欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署

程序员文章站 2024-01-11 16:33:04
...

首先,大家需要先在虚拟机(例如taotao)上安装一个Tomcat服务器,如果有不会的童鞋,那么可以参考我写的《Linux入门第十三讲——在Linux CentOS 7.6系统上安装Tomcat 8.5.38》这篇文章来进行安装,应该是非常容易的。

由于每一个工程都应该部署在对应的一个Tomcat服务器上,所以Tomcat服务器的名字最好有意义。我们根据下表来给Tomcat服务器起名,例如我们现在是要部署taotao-manager服务层工程,那么我们的Tomcat服务器的名字便可以叫做tomcat9000。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
在虚拟机(例如taotao)上安装好了以上Tomcat服务器之后,该Tomcat服务器的端口(应该是有三个)还得根据下表来更新。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
以上准备工作做好之后,接下来咱们就得将taotao-manager服务层工程部署到tomcat9000这个Tomcat服务器上去了。要想达到这个目的,只须按照如下步骤操作即可。

第一步,启动如下服务器,也就是启动那些虚拟机。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
第二步,编辑/usr/local/taotao-projects/tomcat9000/conf目录下的tomcat-users.xml配置文件,即在</tomcat-users>标签上面添加如下三行配置。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
上面三行配置的意思是说添加了一个用户,并为该用户设置了一个密码以及分配了一些权限。

然后再编辑一下usr/local/taotao-projects/tomcat9000/webapps/manager/META-INF这个目录下的context.xml文件,将该文件中的如下一行配置:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

替换为:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />

就像下面这样:
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
如果你不这样做的话,Tomcat服务器的后台管理页面你就进不去,要是硬进的话,你就会看到如下图所示的界面。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
到时候,部署工程自然是部署不上去的,后果会非常严重。当然了,如果你不修改context.xml这个文件就能进入到Tomcat服务器的后台管理页面中,那么就当我没说。

第三步,修改数据库配置文件(即db.properties),因为原来我们写的连接数据库的地址是localhost,现在我们既然要部署到服务器上面去,就不能再用localhost了,而要写成真实的ip地址,如下图所示。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
既然指定了要连接的数据库是ip地址为192.168.81.137的虚拟机上的MySQL,而且还指定了要连的库是taotao,因此我们需要在这台虚拟机上的MySQL中新建一个名称为taotao的数据库,并且将所需的taotao.sql脚本文件导入到该数据库中,如下图所示。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
你可能要问了,我该怎么获取到这个sql脚本文件呢?从我下面给出的百度网盘链接地址中下载就行了。

链接:https://pan.baidu.com/s/1simeTbyekLJc3z_73GCKWw,提取码:217m

第四步,修改taotao-manager服务层工程的pom文件,在其中配置一个tomcat插件,如下图所示。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
<path>/</path>这行配置的意思是说会把工程部署到webapps/ROOT目录下,放到ROOT目录下的好处是会少一级目录,如果把这行配置改为<path>/taotao-manager</path>的话,那么工程部署成功后会在webapps目录下会生成一个taotao-manager.war,并且它会自动解压。如果要想访问这个工程下的页面的话,那么就要在路径下多加一级目录,即/taotao-manager

第五步,重新启动Tomcat服务器,一个好习惯是时时查看Tomcat服务器的启动日志。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
第六步,使用maven命令部署taotao-manager服务层工程,该工程是一个聚合工程,会把所有子工程都打包到一块。

那么,如何使用maven命令来部署taotao-manager服务层工程呢?你可以按照下图所示的步骤来操作。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
这时会弹出一个对话框,然后在该对话框的Goals中一栏输入clean tomcat7:redeploy -DskipTests命令,其中-DskipTests的意思是跳过检查(当然了,也可以不写-DskipTests,只不过这时要勾选下方的Skip Tests复选框),接着依次点击ApplyRun这两按钮。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
运行成功后,效果如下图所示。
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
那么,我们怎么知道工程部署成功了没有呢?我们可以去Dubbo监控中心的后台管理页面中看看,如下图所示。为了查看我们刚才发布的服务是否已经发布成功了,可以点击那个倒三角形,并在下拉菜单中点击服务
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
不出预料,想必你会看到有如下几个Dubbo服务被注册了!!!
淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
但是有个小问题,那就是当我们重启taotao-manager服务层工程之后,Dubbo监控中心认为原来的该工程还没有关闭,会继续占用着端口,为了解决这个问题,我们需要将Dubbo监控中心所在的Tomcat服务器关掉再重启。