Tomcat 使用Maven插件自动部署以及各类常见问题

在linux下把war包部署到tomcat过程记录:

 

第一种:手动部署

1.官网下载tomcat安装包.gz结尾的  

https://archive.apache.org/dist/tomcat/

2.上传到/usr/local/ ,并解压到tomcat目录下

3.进入tomcat/bin目录,运行./startup.sh

4.浏览器访问120.78.xxx.xxx:8080,出现tomcat主页说明成功了

5.Eclipse里面,选择项目右键Export导出到War文件,可以生成war包

或者右键项目--Maven--Maven Install 也会生成war包,目录在console中有

6.把war包拷贝到服务器的 /usr/local/tomcat/webapps 目录下

7.启动tomcat,访问120.78.xxx.xxx:8080/项目名 ,即可

/usr/local/tomcat/startup.sh

8.如果不行,需要关闭centos防火墙 ,开启阿里云服务器的端口8080,再试试

防火墙firewalld的基本使用
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld

 

第二种:使用tomcat提供的Maven Plugin插件来自动部署

访问tomcat官网可以查看:https://tomcat.apache.org/maven-plugin.html

首先保证web项目是maven项目,才能使用maven插件来部署

一共四步:

1.修改服务器上的usr/local/tomcat/conf/tomcat-usr.xml配置文件

在tomcat-usr节点下加入如下内容:

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

如图:

 

2.配置maven的settings.xml的server节点

在settings.xml下加入如下内容:

  <server>
      <id>kensever</id>
      <username>kevin</username>
      <password>123456</password>
    </server>

这里的username 和password要和第一步中修改的username,password一致,因为部署的时候需要用这个用户名密码来访问服务器上的tomcat。id可以自定义。

 

3.修改web项目的pom.xml文件,在build/plugins节点下加入如下内容

<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<configuration>
		<port>8080</port>
		<url>http://xxx.xx.xxx.xx:8080/manager/text</url> 
                <server>kensever</server>   <!-- 与settings.xml文件中Server的id相同 -->
		<path>/handlerdemo</path>   <!-- 应用的部署位置 -->
		<update>true</update>
	</configuration>
</plugin>

path就是应用部署在webapps的哪个目录下,在这里就是webapps/handlerdemo,同时handlerdemo也是项目名

server就是要去maven的settings.xml下读取server节点,所以名字和server节点的id是一致的都是kenserver

 

4.修改tomcat/webapps/manager/META-INF/context.xml

按理来讲,这三步配置完,应该可以通过maven插件来自动部署到服务器了。

可是还是不能访问服务器的tomcat, 因为tomcat的manager页面是默认只能本机访问,所以还需要修改下usr/local/tomcat/webapps/manager/META-INF/context.xml 配置文件

将Context节点下的Value节点注释即可 , 如下图:

或者加入你的本地机器的ip:101.71.45.321,如下图:

 

OK,然后重启一下tomcat

Eclipse上运行Run as-->Maven build--->输入 tomcat7:deploy 就能自动的把本项目部署到tomcat上,而且不需要重启tomcat

同时tomcat的webapps目录下也已经多出了两个文件: handlerdemo文件夹 和handlerdemo.war 包

 

第三种:使用tomcat的manager页面来部署

在上面第二种方法中,只需要做第一步和第四步,既修改服务器的tomcat配置文件,使外网能够访问到tomcat的管理页面,然后通过管理页面也可以部署war包。

访问:http://serverip:8080/manager/html

 通过这个页面下的

 

 

出现的问题:

1.阿里云服务器ECS 启动tomcat  ./startup.sh后无法立刻访问,浏览器会一直在转圈圈,要等好几分钟之后才能访问?这是什么原因?

原因不详,但是解决方案如下:

打开$JAVA_PATH/jre/lib/security/java.security这个文件

找到下面的内容:securerandom.source=file:/dev/random

替换成securerandom.source=file:/dev/./urandom

 

2.修改tomcat/conf/server.xml  把其中的8080改成22 好像不生效,不管8080还是22都无法访问了?

3.Eclipse使用mvn命令tomcat7: deplloy报错:

Could not find goal '' in plugin org.apache.tomcat.maven:tomcat7-maven-plugin:2.2 among available goals exec-war-only, deploy-only, redeploy-only, help, shutdown, run-war-only, standalone-war-only, run, deploy, standalone-war, undeploy, run-war, redeploy, exec-war -> [Help 1]

原因是:tomcat7: 和 deploy之间多了一个空格,是不允许有空格的。删掉空格即可

 

tomcat 多个实例配置端口:

我们可以在一个tomcat下放置多个war包,启动多个web应用程序

也可以复制多个tomcat实例,每个tomcat中放置对应的web应用程序,便于管理。那么需要为每一个tomcat配置端口,否则会引起冲突

找到tomcat/conf/server.xml ,要修改三个地方的端口。

<Server port="8005" shutdown="SHUTDOWN">

 <Connector port="8082" protocol="HTTP/1.1"

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

这里的三个port 都需要修改成和默认值不同。

 

 

tomcat查看日志:

进入/usr/local/tomcat/logs目录:
tail -f catalina.out

 

 

tomcat常见问题:

1.在eclipse下运行tomcat,明明eclipse已经关闭,但是却依然能访问web服务

原因是该服务进程还没有关闭

打开cmd查看该服务端口8080:netstat -ano|findstr  8080
发现还有进程存在,直接杀死进程即可  taskkill  /pid  {pid}

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值