学习淘淘商城第一百零九课(tomcat热部署)

        首先,大家需要先学会安装tomcat,可以参考http://blog.csdn.net/u012453843/article/details/73656374这篇博客进行学习。

热部署方法一:

        我们要登录tomcat管理页面,但需要进行一些配置,那么怎么配置呢?tomcat首页可以给我们一些提示,我们点击tomcat首页的"Manager App"。


         这时会弹出一个对话框,让我们输入用户名和密码,我们当然这时不知道,于是我们点击"取消"。


        点击"取消"后,页面的错误信息给了我们一些提示,告诉我们应该怎么做才能访问tomcat后台管理页面。它提到了,我们可以配置 conf/tomcat-users.xml这个文件。用户需要有manager-gui的权限来使用图形界面进行管理,或者采用manager-script命令行方式进行管理,如下图所示。


          下面我们编辑/usr/local/apache-tomcat-7.0.47/ conf/tomcat-users.xml文件,在</tomcat-users>上面添加三行配置,如下图所示。

         

        添加的配置如下:

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

         先按ESC键退出编辑模式,然后按Shift+ZZ进行保存。

         由于每个工程都对应一个tomcat,所以tomcat的名字最好有意义,既然我们要启动taotao-manager工程,那么我们的tomcat的名字便叫taotao-manager。如下图所示。修改名字所用的命令是:mv apache-tomcat-7.0.47 taotao-manager


         保存后,我们重启tomcat,就是先关闭tomcat,然后再打开tomcat,如下所示。

[root@taotao-tomcat1 taotao-manager]# bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/taotao-manager
Using CATALINA_HOME:   /usr/local/taotao-manager
Using CATALINA_TMPDIR: /usr/local/taotao-manager/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_112
Using CLASSPATH:       /usr/local/taotao-manager/bin/bootstrap.jar:/usr/local/taotao-manager/bin/tomcat-juli.jar
[root@taotao-tomcat1 taotao-manager]# bin/startup.sh 
Using CATALINA_BASE:   /usr/local/taotao-manager
Using CATALINA_HOME:   /usr/local/taotao-manager
Using CATALINA_TMPDIR: /usr/local/taotao-manager/temp
Using JRE_HOME:        /usr/local/jdk1.8.0_112
Using CLASSPATH:       /usr/local/taotao-manager/bin/bootstrap.jar:/usr/local/taotao-manager/bin/tomcat-juli.jar

[root@taotao-tomcat1 taotao-manager]# tailf logs/catalina.out
六月 26, 2017 4:34:04 上午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-bio-8009"]
六月 26, 2017 4:34:04 上午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1172 ms
六月 26, 2017 4:34:04 上午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
六月 26, 2017 4:34:04 上午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.47
六月 26, 2017 4:34:04 上午 org.apache.catalina.startup.HostConfig deployWAR
信息: Deploying web application archive /usr/local/taotao-manager/webapps/ROOT.war
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/taotao-manager/webapps/ROOT/WEB-INF/lib/activemq-all-5.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/taotao-manager/webapps/ROOT/WEB-INF/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
六月 26, 2017 4:34:14 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/manager
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/host-manager
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/examples
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory /usr/local/taotao-manager/webapps/docs
六月 26, 2017 4:34:15 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-bio-8080"]
六月 26, 2017 4:34:15 上午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-bio-8009"]
六月 26, 2017 4:34:15 上午 org.apache.catalina.startup.Catalina start
信息: Server startup in 11689 ms
        重启之后,我们再刷新下刚才不允许访问的http://192.168.156.43:8080/manager/html这个地址,会让我们输入用户名和密码,我们在conf/tomcat-users.xml文件当中配置的用户名和密码都是"tomcat",因此我们在弹出的对话框中输入用户名和密码,然后点击"登录"按钮。如下图所示。

           点击上图的登录按钮后,我们可以看到如下图所示界面。这便是我们的管理后台,我们可以手工部署,就是先把工程打成war包然后用下图的"选择文件"选择打成的war包,然后点击"Deploy"进行部署。它会把war包自动上传到服务器,自动解压并自动启动。


       下面我们便来把后台这个taotao-manager聚合工程打包成war工程,方法是在taotao-manager工程上右键,在右键菜单中点击"Export"。


         在弹出的对话框中展开Web目录,在该目录下有一个WAR file,我们点击它,然后点击"Next"。


         在下图中,会让我们选择一个Web project,由于taotao-manager是个聚合工程,既然要打war包,就要选择这个聚合工程下的war工程,聚合工程下的war工程是taotao-manager-service工程,我们给war包选择一个生成的目录,然后点击"Finish"。

         下面我们便把刚才打成的war包上传到服务端,方法是点击管理后台的"选择文件"按钮,选择我们刚才生成的war包,会在"选择文件"后面显示要上传的war包,然后我们点击"Deploy"按钮。

         导入完后,Message一行的信息如果是"OK"表名上传成功。

            我们再到服务器上的tomcat的webapps目录下,可以看到taotao-manager-service.war已被解压了。

[root@taotao-tomcat1 taotao-manager]# ls
bin  conf  lib  LICENSE  logs  NOTICE  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@taotao-tomcat1 taotao-manager]# cd webapps/
[root@taotao-tomcat1 webapps]# ls
docs  examples  host-manager  manager  ROOT  taotao-manager-service  taotao-manager-service.war
[root@taotao-tomcat1 webapps]# 
            上面这种方式太麻烦,看不到启动工程的信息,我们不用这种方法。

热部署方法二:maven的tomcat插件

        我们来部署taotao-manager工程,为了避免方法一给方法二造成影响,我们把方法一启动的tomcat关闭。接下来,我们到pom.xml文件进行修改,如下图所示,原来的<configuration>里面有两行内容,第一行是<path>/</path>,这行内容现在依然有用,它的意思是把工程放到webapps/ROOT目录下面。放到ROOT目录下的好处是会少一级目录,如果把path配置改为<path>/taotao-manager</path>的话,代表在webapps目录下会生成一个taotao-manager.war,并且它会自动解压。如果要访问这个工程下的页面的话,就要在路径下多加一级目录,就是"/taotao-manager"。<url>http://192.168.156.43:8080/manager/text</url>这句配置的意思是指定tomcat后台管理页面地址(就是我们方法一中的后台管理页面地址),如果是tomcat7的话是现在这个样子,如果是tomcat6的话,就把manager后面的text这级目录去掉,变成<url>http://192.168.156.43:8080/manager</url>。我们在方法一中指定了访问tomcat后台管理页面的用户名和密码,我们这里也需要用。


        这里把修改后的<build>代码粘贴出来以方便大家复制。

<build>
  	<plugins>
  		<plugin>
  			<groupId>org.apache.tomcat.maven</groupId>
  			<artifactId>tomcat7-maven-plugin</artifactId>
  			<configuration>
  				<path>/</path>
  				<port>8080</port>
  				<url>http://192.168.156.43:8080/manager/text</url>
  				<username>tomcat</username>
  				<password>tomcat</password>
  			</configuration>
  		</plugin>
  	</plugins>
  </build>

        除了修改pom.xml文件,我们还需要修改数据库配置文件,因为原来我们写的连接数据库的地址是localhost,现在我们既然要部署到服务器了,就不能再用localhost了,而要写成真实的IP地址,如下图所示。


         既然指定了要连接的数据库是192.168.156.41服务器上的mysql,而且还指定了要连的库是taotao,因此我们需要在192.168.156.41这台服务的mysql中新建一个数据库taotao,并且将taotao.sql文件导入到taotao数据库中,如下图所示。

  

         下面我们便来部署taotao-manager工程,该工程是个聚合工程,会把所有子工程都打包到一块。我们在taotao-manager工程上右键----->Run As----->Maven build...

         

          在弹出的对话框中,Goals一栏输入:clean tomcat7:redeploy -DskipTests,其中"-DskipTests"的意思是跳过检查(也可以不写"-DskipTests",不过要勾选下方的"Skip Tests"复选框),然后点击"Run"。


         运行成功后,如下图所示。

 

           那么,我们怎么知道成功了没有呢?我们可以去dubbo-admin管理页面查看,关于dubbo监控中心的安装使用,大家可以参考http://blog.csdn.net/u012453843/article/details/66477789这篇博客进行学习。最好要将dubbo监控中心与zookeeper放到一台服务器上。安装好dubbo-admin后我们访问dubbo管理页面,如下图所示。为了查看我们刚才发布的服务是否已经成功,我们点击那个倒三角,在下拉菜单中点击"服务"。


           我们会看到如下图所示界面,不过有可能发现任何服务注册信息!


           造成dubbo服务没有成功注册的原因是Eclipse所用的版本是jdk1.8,而我的服务器安装的jdk确实1.7!如下图所示!


           这个问题浪费了我一天的时间,真是可惜啊,部署的时候,大家一定要注意开发时的jdk版本以及服务器的jdk版本,两者一定要一致,否则会出现一些你想都想不到的问题!

           我把服务器的jdk版本更换为jdk1.8,如下图所示。linux版本的jdk8安装包大家可以到http://download.csdn.net/detail/u012453843/9807359这个地址下载。


          更换服务器的jdk之后,我们再重新部署一下taotao-manager,由于我们刚才已经部署过一次了,不用再写命令了,直接按下图所示方式进行重新部署,非常方便。


          重新部署之后,我们再看dubbo的管理页面,如下图所示,可以看到已经有两个dubbo服务被注册了!!!


         但是有个小问题,那就是当我们重启taotao-manager服务之后,dubbo那端认为原来的taotao-manager还没有关闭,继续占用着端口,为了解决这个问题,我们需要将服务器上的该工程的tomcat关掉再重启即可。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值