本次使用的tomcat版本为7.0.73
第一种方法:
将war包直接拷贝到tomcat的webapps文件夹下,启动tomcat时会自动解压war包。
第二种方法:
进入Manager App页面通过上传war包实现部署,该方法发布后war包会上传到webapps文件夹下,并解压
第三种方法:
发布maven项目,使用Tomcat MavenPlugin在tomcat中部署Web
步骤如下:
1. 配置TomcatManager 用户
打开Tomcat根目录下conf目录中的tomcat_user.xml,在<tomcat-users>节点下添加manager角色和用户,用于Tomcat Maven Plugin自动部署应用,xml代码如下:
<tomcat-users>
<rolerolename="manager-gui"/>
<rolerolename="manager-script"/>
<userusername="admin" password="admin" roles="manager-gui,manager-script"/>
</tomcat-users>
2. Maven配置中添加TomcatServer
打开Maven的settings.xml文件,如果是本地安装版Maven,文件为安装根目录下conf/settings.xml,如果使用的是Eclipse内置的Maven,则该文件为当前系统用户目录下的/.m2/setting.xml。在<servers>节点下配置Tomcat的Manager用户信息,代码如下:
<servers>
<server>
<id>Tomcat7</id>
<username>admin</username>
<password>admin</password>
</server>
<servers>
3. 在Maven项目中添加Tomcat Plugin
在<plugins>节点下添加Tomcat Maven Plugin插件,代码如下:
<build>
<finalName>deploy</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://localhost:7073/manager/text</url><!-- tomcat管理路径 -->
<server>Tomcat7</server><!-- 与settings.xml文件中Server的id相同 -->
<path>/deploy</path><!-- 应用的部署位置 -->
</configuration>
</plugin>
</plugins>
</build>
4. 部署
在project视图中选中项目,右键"Run As"->"Maven bulid",执行tomcat7:deploy命令,即可完成部署,执行tomcat7:redeploy即可重新部署项目,tomcat7:undeploy卸载部署。
5. 问题
问题1:Connectionrefused错误
报错信息如下:
[ERROR]Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy (default-cli) on projecthelloworld: Cannot invoke Tomcat manager: Connection refused: connect ->[Help 1]
原因:未启动Tomcat服务器
解决办法:先启动Tomcat服务器再选择Run
问题2:401错误
报错信息如下:
[ERROR] Failed to execute goalorg.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli)on project helloworld: Cannot invoke Tomcat manager: Server returned HTTPresponse code: 401 for URL: http://localhost:7073/manager/text/deploy?path=%2Fhelloworld-> [Help 1]
原因:权限问题
解决办法如上步骤1、2、3配置文件
问题3:403错误
报错信息如下:
[ERROR] Failed to execute goalorg.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli)on project helloworld: Cannot invoke Tomcat manager: Server returned HTTP responsecode: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fhelloworld-> [Help 1]
原因:产生该问题有可能因为两个原因,具体参见解决办法
解决办法:
1)如果使用的是Tomcat7,需要修改pom.xml中部署的url地址,将<url>http://localhost:7073/manager</url>改<url>http://localhost:8080/manager/text</url>
2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限,我在遇到该问题时,就是忘了分配manager-script权限。
正确的conf/tomcat-users.xml配置应为:
<tomcat-users>
<rolerolename="manager-gui"/>
<rolerolename="manager-script"/>
<user username="admin” password="admin"roles="manager-gui, manager-script"/>
</tomcat-users>