的pom.xml:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://localhost:8080/manager/html</url>
<server>myserver</server>
<path>/test</path>
<warFile>${project.build.directory}/${project.build.finalName}.war</warFile>
</configuration>
</plugin>
使用Eclipse: Eclipse indigo 3.7带 m2e插件
改性 Tomcat7 / CONF /的 Tomcat的users.xml中
<role rolename="admin"/>
<role rolename="manager"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
context.xml中
Tomcat7 / conf / context.xml,将<context>
更改为
<Context antiJARLocking="true" antiResourceLocking="true">
在 apache-maven \ conf \ settings.xml
下在服务器标记下添加以下条目:
<servers>
<server>
<id>myserver</id>
<username>admin</username>
<password>admin</password>
</server>
启动tomcat服务器。
目标运行: tomcat:deploy 和 tomcat:取消部署
收到以下错误:
[ERROR] Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.1:redeploy (default-cli) on project test: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: http://localhost:8080/manager/html/deploy?path=%2Ftest&war=&update=true -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
项目名称:测试
war文件名: test-1.0-SNAPSHOT.war
发现了类似的问题,但没有多大用处:Tomcat-maven-plugin 401 error
答案 0 :(得分:6)
虽然答案很晚,但有人可能觉得这很有用。 如果你使用的是maven3和tomcat7.下面的方法对我有用。我不知道tomcat7中应用程序管理器端点的变化。
Environment - Apache Maven 3.0.4,apache-tomcat-7.0.34,Windows 7
Tomcat7已将其部署终点从http://tomcatserver:8080/manager/html
更改为http://tomcatserver:8080/manager/text
。
所以我的pom.xml将是
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<configuration>
<url>http://tomcatserver:8080/manager/text</url>
<server>tomcat</server>
<path>/myWebApp</path>
</configuration>
</plugin>
在tomcat-users.xml中
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="root" password="root" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script"/>
在maven settings.xml中
<server>
<id>tomcat</id>
<username>root</username>
<password>root</password>
</server>
在context.xml中,虽然这是可选的,并且与maven3部署到tomcat7无关,但有时可能会发生jar锁定,因此要更安全。
<Context antiJARLocking="true" antiResourceLocking="true">
现在发出
mvn tomcat:deploy
请记住在maven部署之前启动tomcat。
如果部署成功,您的应用程序将在
处提供http://tomcatserver:8080/myWebApp
答案 1 :(得分:3)
将manager-gui
添加到角色:
<user username="admin" password="admin" roles="admin,manager,manager-gui" />
重新启动Tomcat。
确保您的XML配置文件正在使用中。一种简单的方法是在其中编写一个未关闭的标记并检查错误消息。如果您没有收到任何错误消息,则表明您使用的是未使用的XML。
答案 2 :(得分:1)
你应该设置
<user username="admin" password="admin" roles="manager-script,manager-gui" />
使用maven插件进行部署
答案 3 :(得分:0)
对于tomcat 7,你使用了错误的目标。尝试使用tomcat7:deploy和tomcat7:取消部署。
答案 4 :(得分:0)
在所提及的网站上找到快速解决方案......
http://www.avajava.com/tutorials/lessons/how-do-i-deploy-a-maven-web-application-to-tomcat.html
在Eclipse和Sprint测试套件中按预期工作
注意: - 我使用了干净的 tomcat:deploy ,非常适合我。