Maven热部署及错误排除

一、Maven热部署配置

1: 配置Tomcat Manager 用户

重新解压缩了一个新的tomcat7,打开Tomcat根目录下conf目录中的tomcat_user.xml,在《tomcat-users》节点下添加manager角色和用户,用于Tomcat Maven Plugin自动部署应用,xml代码如下:

<tomcat-users>
    <role rolename="manager-gui"/>  
    <role rolename="manager-script"/>  
    <user username="alexgaoyh" password="alexgaoyh" roles="manager-gui, manager-script"/> <!-- 用户名和密码可以是其他字合法符串 -->
</tomcat-users>

2: Maven配置中添加Tomcat Server

打开Maven的settings.xml文件,如果是本地安装版Maven,文件为安装根目录下conf/settings.xml,如果使用的是Eclipse内置的Maven,则该文件为当前系统用户目录下的/.m2/setting.xml。在《servers》节点下配置Tomcat的Manager用户信息,xml代码如下:

<servers>
    <server>
       <id>Tomcat7</id>
       <username>alexgaoyh</username>
       <password>alexgaoyh</password>
     </server>
<servers>

id用于在pom.xml文件中配置该Server,用户名和密码与 tomcat_user.xml中配置相同。

3: 在Maven项目中添加Tomcat Service

打开项目pom.xml文件,在《plugins》节点下添加Tomcat Maven Plugin插件,xml代码如下:

<build>
    <finalName>web</finalName>
        <plugins>
            <plugin> 
                <groupId>org.apache.tomcat.maven</groupId> 
                <artifactId>tomcat7-maven-plugin</artifactId> 
                <version>2.2</version> 
                <configuration> 
                <url>http://localhost:8080/manager/text</url> <!-- tomcat管理路径 -->
                <server>Tomcat7</server> <!-- 与settings.xml文件中Server的id相同 -->
                <path>/web</path> <!-- 应用的部署位置 -->
                </configuration> 
            </plugin>
        </plugins>
    </build>

4:部署到Tomcat7

在project视图中选中项目,右键”Run As”->”Maven bulid”,执行tomcat7:deploy命令,即可完成部署,执行tomcat7:redeploy即可重新部署项目,tomcat7:undeploy卸载部署。

二、错误排除

在Maven与Tomcat配合部署过程中,最常见的错误有三种,折腾了半天,终于找到三种错误产生的原因,以及相应的完美解决办法

1:Connection refused错误

报错信息如下:

[ERROR]Failed to execute goal org.apache.tomcat.maven: tomcat7-maven-plugin: 2.0- SNAPSHOT: deploy (default-cli) on project helloworld: Cannot invoke Tomcat manager: Connection refused: connect -> [Help 1]

原因:未启动Tomcat服务器
解决办法:先启动Tomcat服务器再选择Run

2:401错误

报错信息如下:

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli) on project helloworld: Cannot invoke Tomcat manager: Server returned HTTP response code: 401 for URL: http://localhost:8080/manager/text/deploy?path=%2Fhelloworld -> [Help 1]

原因:权限问题
解决办法在$CATALINA_BASE/conf/tomcat-users.xml,
如D:\apache-tomcat-7.0.34\conf\tomcat-users.xml文件中添加权限

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

修改pom.xml文件,在 中添加

<username>admin</username>  
<password>admin</password>

3:403错误

报错信息如下:

[ERROR] Failed to execute goal org.apache.tomcat.maven:tomcat7-maven-plugin: 2.0-SNAPSHOT:deploy (default-cli) on project helloworld: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Fhelloworld -> [Help 1]

原因:产生该问题有可能因为两个原因,具体参见解决办法
解决办法:
1)如果使用的是Tomcat 7,需要修改pom.xml中部署的url地址,将
<url>http://localhost:8080/manager</url>

<url>http://localhost:8080/manager/text</url>

2)给tomcat用户权限分配上,需要同时具备manager-gui和manager-script权限,我在遇到该问题时,就是忘了分配manager-script权限。
正确的conf/tomcat-users.xml配置应为:
复制代码

<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin” password="admin" roles="manager-gui, manager-script"/>
</tomcat-users>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值