淘淘商城第117讲——使用maven的tomcat插件来实现Tomcat热部署
首先,大家需要先在虚拟机(例如taotao)上安装一个Tomcat服务器,如果有不会的童鞋,那么可以参考我写的《Linux入门第十三讲——在Linux CentOS 7.6系统上安装Tomcat 8.5.38》这篇文章来进行安装,应该是非常容易的。
由于每一个工程都应该部署在对应的一个Tomcat服务器上,所以Tomcat服务器的名字最好有意义。我们根据下表来给Tomcat服务器起名,例如我们现在是要部署taotao-manager服务层工程,那么我们的Tomcat服务器的名字便可以叫做tomcat9000。
在虚拟机(例如taotao)上安装好了以上Tomcat服务器之后,该Tomcat服务器的端口(应该是有三个)还得根据下表来更新。
以上准备工作做好之后,接下来咱们就得将taotao-manager服务层工程部署到tomcat9000这个Tomcat服务器上去了。要想达到这个目的,只须按照如下步骤操作即可。
第一步,启动如下服务器,也就是启动那些虚拟机。
第二步,编辑/usr/local/taotao-projects/tomcat9000/conf目录下的tomcat-users.xml配置文件,即在</tomcat-users>
标签上面添加如下三行配置。
上面三行配置的意思是说添加了一个用户,并为该用户设置了一个密码以及分配了一些权限。
然后再编辑一下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="^.*$" />
就像下面这样:
如果你不这样做的话,Tomcat服务器的后台管理页面你就进不去,要是硬进的话,你就会看到如下图所示的界面。
到时候,部署工程自然是部署不上去的,后果会非常严重。当然了,如果你不修改context.xml这个文件就能进入到Tomcat服务器的后台管理页面中,那么就当我没说。
第三步,修改数据库配置文件(即db.properties),因为原来我们写的连接数据库的地址是localhost,现在我们既然要部署到服务器上面去,就不能再用localhost了,而要写成真实的ip地址,如下图所示。
既然指定了要连接的数据库是ip地址为192.168.81.137
的虚拟机上的MySQL,而且还指定了要连的库是taotao,因此我们需要在这台虚拟机上的MySQL中新建一个名称为taotao的数据库,并且将所需的taotao.sql脚本文件导入到该数据库中,如下图所示。
你可能要问了,我该怎么获取到这个sql脚本文件呢?从我下面给出的百度网盘链接地址中下载就行了。
链接:https://pan.baidu.com/s/1simeTbyekLJc3z_73GCKWw,提取码:217m
第四步,修改taotao-manager服务层工程的pom文件,在其中配置一个tomcat插件,如下图所示。<path>/</path>
这行配置的意思是说会把工程部署到webapps/ROOT目录下,放到ROOT目录下的好处是会少一级目录,如果把这行配置改为<path>/taotao-manager</path>
的话,那么工程部署成功后会在webapps目录下会生成一个taotao-manager.war,并且它会自动解压。如果要想访问这个工程下的页面的话,那么就要在路径下多加一级目录,即/taotao-manager
。
第五步,重新启动Tomcat服务器,一个好习惯是时时查看Tomcat服务器的启动日志。
第六步,使用maven命令部署taotao-manager服务层工程,该工程是一个聚合工程,会把所有子工程都打包到一块。
那么,如何使用maven命令来部署taotao-manager服务层工程呢?你可以按照下图所示的步骤来操作。
这时会弹出一个对话框,然后在该对话框的Goals中一栏输入clean tomcat7:redeploy -DskipTests
命令,其中-DskipTests
的意思是跳过检查(当然了,也可以不写-DskipTests
,只不过这时要勾选下方的Skip Tests
复选框),接着依次点击Apply
和Run
这两按钮。
运行成功后,效果如下图所示。
那么,我们怎么知道工程部署成功了没有呢?我们可以去Dubbo监控中心的后台管理页面中看看,如下图所示。为了查看我们刚才发布的服务是否已经发布成功了,可以点击那个倒三角形,并在下拉菜单中点击服务
。
不出预料,想必你会看到有如下几个Dubbo服务被注册了!!!
但是有个小问题,那就是当我们重启taotao-manager服务层工程之后,Dubbo监控中心认为原来的该工程还没有关闭,会继续占用着端口,为了解决这个问题,我们需要将Dubbo监控中心所在的Tomcat服务器关掉再重启。