maven web项目的几种部署方式和常见的出错方式的解决

      本人现在开始学习着弄maven,最近部署一个maven web项目,其中有些前辈写的东西还是蛮经典的,maven项目的建立随着版本的更新操作越来越简单,我现在用的maven版本是3.3.9,较之前的版本基本傻瓜式操作。maven web项目的几种部署方式请参考前辈们写的, 参考请戳我
咱先讲讲自己碰到的问题:
       三种常见的部署方式:第一种是手动将项目打包成war,发布在tomcat/webapps/下,第二种是在运行 tomcat7:run(如在eclipse中运行,会启动tomcat-maven插件),第三种是开启外部tomcat,在执行tomcat7:redeploy,如果是第一次运行,则执行tomcat7:deploy。
       刚开始,按照上述的几种部署方式,第一种方式和第二种方式都很简单的实现,就是在第三种方式(自动部署到tomcat服务器上)的部署花费了我好长时间,主要的问题就是eclipse它本身自带了一个maven插件,但是前段时间由于其他项目需要,我把maven升级在外部安装。问题就是出在这里,编译项目的时候一直都提示, “tomcatManager status code:403, ReasonPhrase:forbidden” ,也查看了 外部maven的settings.xml的配置和tomcat-users.xml的配置,这些配置应该是没有问题啦!但是问题还是一直出来!到底是何原因呢?

<server>
<id>tomcat</id>
<username>admin</username>
<password>admin</password>
</server>

settings.xml配置

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

tomcat-users.xml配置

<build>
<finalName>demo-shiro-hello</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<warFile>target/${project.build.finalName}.war</warFile>
<url>http://localhost:8080/manager/text</url> <!--tomcat7的实际管理地址 -->
<path>/${project.build.finalName}</path>
<server>tomcat</server>
<username>admin1</username>
<password>admin1</password>
<uriEncoding>UTF-8</uriEncoding>
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>

pom.xml文件配置也是正确的

      后面自己分析了下,为啥得不到权限的一直都禁止访问呢?是不是哪个配置文件不生效呢,于是乎,我一直都在重启tomcat,但是没有什么卵用,好吧,我差点要放弃的时候,我就查看了eclipse maven插件的配置选项,果然就是出在这个问题上。
      原来在加载这个settings.xml问题上,默认是加载原先插件的配置文件,所以导致修改一直无效,现在将外部的setttings.xml的文件导入,问题已解决。

常见的几种出错方式 参考原址:原文地址:http://www.51testing.com/html/94/488194-845177.html

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”/>
<user username=”admin” password=”admin” roles=”manager”/>

修改pom.xml文件,在<configuration>
</configuration>中添加

<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>
在这次部署的问题上,我就是遇到了url 的问题,我用的是tomcat7
2)给tomcat用户权限分配上,需要同时具备manager-gui和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>
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值