一.maven的部署和启动
我用的tomcat7,其中tomcat-user.xml文件需要配置如下role和user
- <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"/>
maven的setting.xml文件的servers节点下添加如下内容
- <server>
- <id>tomcat</id>
- <username>admin</username>
- <password>admin</password>
- </server>
然后当前项目的pom.xml文件的plugins节点下需要添加如下plugin
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>tomcat-maven-plugin</artifactId>
- <configuration>
- <server>tomcat</server>
- <url>http://localhost:8080/manager/text</url>
- <path>/framework</path>
- </configuration>
- </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 命令,之后你对项目的修改都会自动的同步到项目发布目录
在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
>
|