maven的部署和启动以及常见的三种错误

来源:互联网 发布:华师网络教育远程教育 编辑:程序博客网 时间:2024/06/15 06:47

一.maven的部署和启动

我用的tomcat7,其中tomcat-user.xml文件需要配置如下role和user

[html] view plaincopy
  1. <role rolename="admin-gui"/>  
  2. <role rolename="admin-script"/>  
  3. <role rolename="manager-gui"/>  
  4. <role rolename="manager-script"/>  
  5. <role rolename="manager-jmx"/>  
  6. <role rolename="manager-status"/>  
  7. <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>  

maven的setting.xml文件的servers节点下添加如下内容

[html] view plaincopy
  1. <server>  
  2.    <id>tomcat</id>  
  3.    <username>admin</username>  
  4.    <password>admin</password>  
  5. </server>  

然后当前项目的pom.xml文件的plugins节点下需要添加如下plugin

[html] view plaincopy
  1. <plugin>    
  2.      <groupId>org.codehaus.mojo</groupId>    
  3.      <artifactId>tomcat-maven-plugin</artifactId>         
  4.      <configuration>    
  5.         <server>tomcat</server>  
  6.          <url>http://localhost:8080/manager/text</url>      
  7.          <path>/framework</path>    
  8.      </configuration>     
  9. </plugin>   

在上述配置文件中:

其中server与maven的setting.xml中的id一致

其中url为tomcat管理地址,不同的容器,域名和端口可能不同,注意url的最后必须加上 /text 否则会出错

其中 path为你项目的名称


注意事项:

1、如果本机有多个tomcat,eclipse maven插件怎么知道是哪个tomcat呢? 答:你必须在eclipse里面配置 tomcat

2、在运行maven的deploy命令之前,一定要先启动tomcat(直接进入tomcat的bin目录点击startup.bat),否则会报:“Cannot invoke Tomcat manager: Connection refused” 错误

3、在 pom.xml 的configuration节点里面的url最后必须加上 /text ,否则,即使你在运行maven的deploy命令之前已经启动了tomcat,还是会报错:

“Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/deploy?path=%2Fframework&war= ”

4、在运行maven的deploy 命令之前,我们已经启动了tomcat,所以在运行maven的run 命令之前,必须先关掉tomcat,然后再运行maven的 run 命令,之后你对项目的修改都会自动的同步到项目发布目录


二.自动部署Tomcat错误排除

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

1.Connection refused错误

报错信息如下:

?
1
[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错误

报错信息如下:

?
1
[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文件中添加权限

?
1
2
<role rolename=”manager”/>
<user username=”admin” password=”admin” roles=”manager”/>

修改pom.xml文件,在<configuration>  

</configuration>中添加

?
1
2
<username>admin</username>  
<password>admin</password>

3.403错误

报错信息如下:

?
1
[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配置应为:

?
1
2
3
4
5
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="admin” password="admin" roles="manager-gui, manager-script"/>
</tomcat-users>


0 0
原创粉丝点击